2015-09-14 2 views
1

Я пытаюсь обновить приложение 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' 

Спасибо!

+0

Это может помочь вам увидеть настройки 'INSTALLED_APPS' и конфигурацию вашего приложения. – Alasdair

+0

Я добавил их. Благодарю. – William

+0

Попробуйте этикетку без точки, например. 'myadmin' вместо' my.admin'. – Alasdair

ответ

0

label в вашей конфигурации приложения не должно иметь точки в нем. Вы можете сделать:

Смежные вопросы