2015-05-11 5 views
2

Имея модель, как показано нижеДжанго модель прокси не может быть перенесена при обновлении 1.4 -> 1.7

from django.contrib.auth.models import User # has migrations in 1.7 

class MyProxyUser(User): 
    class Meta: 
     proxy = True 

в приложении без миграции дает следующее сообщение об ошибке при выполнении тестов:

django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [<ModelState: 'django_proxy_model_problems.MyProxyUser'>] 
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth) 
in an app with no migrations; see https://docs.djangoproject.com/en/1.7/topics/migrations/#dependencies for more 

Начитавшись как

Я не могу понять, что я должен делать, чтобы решить эту проблему (manage.py makemigrations отчеты No changes detected)

Проблема может быть воспроизведен, запустив tox -e py27-django17 с помощью this github repo

Это может быть воспроизведен с Django 1.7 & 1,8, но работает нормально с 1.4

ответ

3

Пробег manage.py makemigrations <app_label>. Django не создает папку переноса, если она не существует, если вы явно не указали метку приложения. Это связано с тем, что приложения без миграции поддерживаются.

Если папка migrations существует в приложении, и имеет __init__.py файл (даже на Python 3), Django подберет приложение в качестве мигрированного приложения, и создать миграции только с manage.py makemigrations.

+0

Это работает, только если прокси-модель является единственной моделью в модуле – man2xxl

+0

@ man2xxl Почему бы не работать? – knbk