アプリケーションが起動するたびにコードを実行する必要があります。実際のビューコードと同じように、モデルを操作できる必要があります。具体的には、私が長いユーザー名をサポートするために、組み込みのUserモデルハックしようとしているので、私のコードは、このDjangoアプリケーションの実行コードの開始
def username_length_hack(sender, *args, **kwargs): model = sender._meta.model model._meta.get_field("username").max_length = 254
のようなものです。しかし、私はそれを行うための適切な場所を見つけることができないようしています。私は、(ユーザーがこのアプリケーションモデルがロードされるまでにロードされることを期待して)Userモデルを使用するappのmodels.pyまたはapp.pyのいずれかにclass_preparedシグナルハンドラを追加しようとしました。 post_migrateとpre_migrateは、migrateコマンドでのみ実行されます。 settings.pyにコードを追加するのは変だと思われますが、その時点では何もロードされていません。これまでは、pre_initシグナルに接続して、Userインスタンスが生成されるたびに実行されていました。しかし、それは資源のように見えます。私はDjango 1.8を使用しています。どのように私はすべてのアプリの負荷でこれを実行できますか?
[これは](http://stackoverflow.com/questions/6791911/execute-code-when-django-starts-once-only)役立つかもしれない
あなたはあなたのアプリケーションの
__init__.py
にコードを追加することができます君は。 – Harrison*組み込みユーザーモデルをハックしようとしています* <=これは私が停止した場所です。[カスタムユーザーモデルをもっと簡単に提供できます](https://docs.djangoproject.com/en/1.8/topics/ auth/customizing /#指定-a-custom-user-model)。それは、ユーザー名フィールドを変更する方法も文書化されています。モンキーモデルにパッチを当てるのは良い考えではありません。 – dhke
@dhkeマルチメガバイトのコードベースをカスタムユーザーモデルに変換することはできません。 –