web-dev-qa-db-ja.com

Django「Python manage.py migrate」コマンド実行時のValueError

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'.
9
Inyavic Sage

Migrationsフォルダー内の以前の0001_initial.pyを削除し、makemigrationを実行して、もう一度移行します

私が思うに、デフォルトのユーザーモデルのインスタンスがすでにあるからです。新しいプロジェクトを開始し、モデルを再度移行すると、機能するはずです。

2
Mahdi Sorkhmiri

同様の問題があります。キャッシュと移行の履歴を持つ管理アプリです。 YouProject\lib\site-にあるすべてのキャッシュと移行履歴レコード(pycacheファイル、0001.intialなどを削除し、init。pyのみ)を削除することで解決しますpackages\Django\contrib\admin\migrations

1
Henning Lee

アプリの1つの名前を変更したときにも同様の問題がありました。2つの場所で移行ファイルを削除する必要がありました。特定のアプリ移行フォルダーのすべての移行、次に「Your-project-env/lib/python3。 5/site-packages/Django/contrib/admin/migrations」。

1
Aldo Okware

INSTALLED_APPSにaccountsを追加していません。コメントから、accounts.apps.AccountsConfigをアプリのリストに追加します。代わりに、accountsをINSTALLED_APPSに追加するだけです

1
Adilet Maratov

私は同じ問題を抱えています。 models.pyでクラスの下を調べ、app_labelをアプリケーションの名前に変更します。クラスの名前を入力すると、エラーが発生しました。これを行うと、エラーが修正されると思います。

class Meta:
        app_label = 'put_app_name'

文法エラーでごめんなさい、私はグーグル翻訳機を使っています。