ValueError in Django when running the “python manage.py migrate” command

匿名 (未验证) 提交于 2019-12-03 00:52:01

问题:

I needed to add more fields to Django's User model, so I created a custom model class (named Accounts in an app named accounts) that extends Django's AbstractUser class.

After that, I updated my settings.py file, defining the AUTH_USER_MODEL property:

AUTH_USER_MODEL = 'accounts.Accounts' 

I then created a migration file for the custom model using the python manage.py makemigrations command.

After that, I ran the python manage.py migrate command and I got this error message:

ValueError: The field admin.LogEntry.user was declared with a lazy reference to 'accounts.accounts', but app 'accounts' isn't installed. 

What's the cause of the error and how can I fix it?

UPDATE: Now, if i run the python manage.py makemigrations command, I get this error message:

ValueError: The field admin.LogEntry.user was declared with a lazy reference to 'accounts.accounts', but app 'accounts' doesn't provide model 'accounts'. 

回答1:

You just delete your previous 0001_initial.py in the migrations folder and try doing the makemigration and migrate again



回答2:

You didn't add accounts to your INSTALLED_APPS. From the comment, I can see accounts.apps.AccountsConfig in your list of apps. Instead of it, just add accounts to your INSTALLED_APPS



回答3:

It's just because you have already an instance of default user model I think. Start a new project and migrate your models again and it should work.



回答4:

I have the similar problem. It is the admin app has the cache and migrations history. I solve it by deleting all the cache and migrations history record(pycache file, and 0001.intial etc., keep init.py only) in YouProject\lib\site-packages\django\contrib\admin\migrations



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!