升级到 Django 1.7 后无法进行迁移 运行
Can't make migrations run after upgrading to Django 1.7
我正在尝试将我的 Django 1.6.2 应用程序升级到 Django 1.7.10,但由于 makemigrations 命令不断出现错误而卡住了。我从未在此应用程序中使用过迁移。当我 运行 命令 "python ./manage.py makemigrations" 时,出现以下错误:
... # stacktrace
File "/Users/myname/venv/myproject/lib/python2.7/site-packages/django/db/migrations/state.py", line 248, in __init__
raise ValueError(msg.format(field=operations[0][1], model=lookup_model))
ValueError: Lookup failed for model referenced by field my.admin.PhotoQueue.review_queue: my.admin.my.admin.ReviewQueue
其中 my.admin 是 "admin" 应用程序的 AppConfig 标签,其模型模块包含有问题的 类:
# apps/admin/models.py <- I keep all my apps in an "apps" subdirectory in my project
from django.contrib.auth.models import User
class ReviewQueue(models.Model):
"""Queue contains changes that need to be reviewed."""
user = models.ForeignKey(User)
... # more declarations
class PhotoQueue(models.Model):
"""Queue contains information about photos uploaded by a user."""
review_queue = models.OneToOneField(ReviewQueue, primary_key=True)
如您所见,我的评论队列中的项目可以选择与我的照片队列中的项目相关。 ReviewQueue 和 PhotoQueue 类 驻留在同一模块中,并且 ReviewQueue 是在 PhotoQueue 之前声明的。我在网上查看是否有其他人遇到过这个问题,但没有看到任何东西。我还查看了是否存在与迁移和 OneToOneFields 相关的任何问题,但仍然没有成功。有谁知道是什么导致了这个问题?如果我不能解决它,我的生意就死了。
这是我安装的应用程序和应用程序配置:
# conf/settings/base.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
# Project apps
'apps.admin',
'apps.members',
)
# apps/admin/models/apps.py
from django.apps import AppConfig
class AdminConfig(AppConfig):
name = 'apps.admin'
label = 'my.admin'
谢谢!
您的应用配置中的 label 不应包含点。你可以这样做:
class AdminConfig(AppConfig):
name = 'apps.admin'
label = 'myadmin'
我正在尝试将我的 Django 1.6.2 应用程序升级到 Django 1.7.10,但由于 makemigrations 命令不断出现错误而卡住了。我从未在此应用程序中使用过迁移。当我 运行 命令 "python ./manage.py makemigrations" 时,出现以下错误:
... # stacktrace
File "/Users/myname/venv/myproject/lib/python2.7/site-packages/django/db/migrations/state.py", line 248, in __init__
raise ValueError(msg.format(field=operations[0][1], model=lookup_model))
ValueError: Lookup failed for model referenced by field my.admin.PhotoQueue.review_queue: my.admin.my.admin.ReviewQueue
其中 my.admin 是 "admin" 应用程序的 AppConfig 标签,其模型模块包含有问题的 类:
# apps/admin/models.py <- I keep all my apps in an "apps" subdirectory in my project
from django.contrib.auth.models import User
class ReviewQueue(models.Model):
"""Queue contains changes that need to be reviewed."""
user = models.ForeignKey(User)
... # more declarations
class PhotoQueue(models.Model):
"""Queue contains information about photos uploaded by a user."""
review_queue = models.OneToOneField(ReviewQueue, primary_key=True)
如您所见,我的评论队列中的项目可以选择与我的照片队列中的项目相关。 ReviewQueue 和 PhotoQueue 类 驻留在同一模块中,并且 ReviewQueue 是在 PhotoQueue 之前声明的。我在网上查看是否有其他人遇到过这个问题,但没有看到任何东西。我还查看了是否存在与迁移和 OneToOneFields 相关的任何问题,但仍然没有成功。有谁知道是什么导致了这个问题?如果我不能解决它,我的生意就死了。
这是我安装的应用程序和应用程序配置:
# conf/settings/base.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
# Project apps
'apps.admin',
'apps.members',
)
# apps/admin/models/apps.py
from django.apps import AppConfig
class AdminConfig(AppConfig):
name = 'apps.admin'
label = 'my.admin'
谢谢!
您的应用配置中的 label 不应包含点。你可以这样做:
class AdminConfig(AppConfig):
name = 'apps.admin'
label = 'myadmin'