mot*_*333 2 python django migrate
这是我安装的应用程序:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'leadgenerator',
'leadgenerator.apps.ui',
'leadgenerator.apps.accounts',
'leadgenerator.apps.instagram',
'leadgenerator.apps.BorseBots',
'leadgenerator.apps.TelegramBorse',
'leadgenerator.apps.Utils',
'leadgenerator.apps.Blog',
'leadgenerator.apps.Crypto',
'channels',
'multiselectfield',
'django_redis',
'django_filters',
'extra_views',
'django_select2',
'compressor',
'django_celery_beat',
'crispy_forms',
'django_tables2',
'ckeditor',
'ckeditor_uploader',
# 'leadgenerator.ckeditor5',
'leadgenerator.rolepermissions',
'rolepermissions',
# login and login_as
'loginas',
'allauth',
'allauth.account',
'allauth.socialaccount',
'phonenumber_field',
# blog
'modelcluster',
'taggit',
# end blog
'imagekit',
'pwa'
]
Run Code Online (Sandbox Code Playgroud)
我在模型中使用了用户:
from django.contrib.auth.models import User as djangoUser
class BlogPost(models.Model):
author = models.ForeignKey(djangoUser, on_delete=models.CASCADE, related_name='blog_posts', verbose_name=_('Author'))
Run Code Online (Sandbox Code Playgroud)
现在迁移是0013
当我像这样使用向后迁移时:
migrate Blog 0011
Run Code Online (Sandbox Code Playgroud)
发生错误:
ValueError: The field Blog.BlogPost.author was declared with a lazy reference to 'auth.user', but app 'auth' isn't installed.
Run Code Online (Sandbox Code Playgroud)
AUTH_USER_MODEL我也没有settings.py
我也无法删除数据库,因为上面有太多数据。
有什么问题?
使用 django2.2 python3.7 postgresql
问题出在迁移依赖项上
没有在哪里导入auth
所以我在第一个代码中添加以下代码Blog migrations并解决了错误
Blog/migrations/0003....py # file name
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
...
]
Run Code Online (Sandbox Code Playgroud)
实际上,如果您在其他 your_app 上看到此错误,只需将 your_app 的一些迁移添加到依赖项中,如下所示:
dependencies = [
('accounts', '0012_auto_20200730_1818'),
...
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5950 次 |
| 最近记录: |