Я пытаюсь обновить приложение Django 1.6.2 до Django 1.7.10, но застрял, потому что команда makemigrations продолжает поднимать ошибку. Я никогда не использовал миграции в этом приложении. Когда я запускаю команду «питон ./manage.py makemigrations», я получаю следующее сообщение об ошибке:Невозможно выполнить миграцию после обновления до Django 1.7
... # 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 находится ярлык 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, снова без везения. Кто-нибудь знает, что вызывает эту проблему? Мой бизнес мертв, если я не могу его решить.
Вот мои установленные приложения и AppConfig:
# 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'
Спасибо!
Это может помочь вам увидеть настройки 'INSTALLED_APPS' и конфигурацию вашего приложения. – Alasdair
Я добавил их. Благодарю. – William
Попробуйте этикетку без точки, например. 'myadmin' вместо' my.admin'. – Alasdair