Djangoのserモデルにフィールドを追加する必要があるため、拡張するカスタムモデルクラス(Accountsという名前のアプリでAccounts)を作成しましたDjangoのAbstractUserクラス。
その後、私はsettings.pyファイルを更新し、AUTH_USER_MODELプロパティを定義します。
AUTH_USER_MODEL = 'accounts.Accounts'
次に、python manage.py makemigrations
コマンドを使用して、カスタムモデルの移行ファイルを作成しました。
その後、python manage.py migrate
コマンドを実行すると、次のエラーメッセージが表示されました。
ValueError: The field admin.LogEntry.user was declared with a lazy reference to 'accounts.accounts', but app 'accounts' isn't installed.
エラーの原因は何ですか、どうすれば修正できますか?
更新:python manage.py makemigrations
コマンドを実行すると、次のエラーメッセージが表示されます。
ValueError: The field admin.LogEntry.user was declared with a lazy reference to 'accounts.accounts', but app 'accounts' doesn't provide model 'accounts'.
Migrationsフォルダー内の以前の0001_initial.pyを削除し、makemigrationを実行して、もう一度移行します
私が思うに、デフォルトのユーザーモデルのインスタンスがすでにあるからです。新しいプロジェクトを開始し、モデルを再度移行すると、機能するはずです。
同様の問題があります。キャッシュと移行の履歴を持つ管理アプリです。 YouProject\lib\site-にあるすべてのキャッシュと移行履歴レコード(pycacheファイル、0001.intialなどを削除し、init。pyのみ)を削除することで解決しますpackages\Django\contrib\admin\migrations
アプリの1つの名前を変更したときにも同様の問題がありました。2つの場所で移行ファイルを削除する必要がありました。特定のアプリ移行フォルダーのすべての移行、次に「Your-project-env/lib/python3。 5/site-packages/Django/contrib/admin/migrations」。
INSTALLED_APPSにaccounts
を追加していません。コメントから、accounts.apps.AccountsConfig
をアプリのリストに追加します。代わりに、accounts
をINSTALLED_APPSに追加するだけです
私は同じ問題を抱えています。 models.py
でクラスの下を調べ、app_label
をアプリケーションの名前に変更します。クラスの名前を入力すると、エラーが発生しました。これを行うと、エラーが修正されると思います。
class Meta:
app_label = 'put_app_name'
文法エラーでごめんなさい、私はグーグル翻訳機を使っています。