У меня есть несколько простых моделей: Profile, Certifier и Designer, два из которых наследуются от Profile (multi table inheritance). В Designer есть внешний ключ для Certifier.
class Profile(models.Model):
TYPES = (
('admin', _('Administrator')),
('certifier', _('Certifier')),
('designer', _('Designer'))
)
user = models.OneToOneField(User)
type = models.CharField(max_length=9, choices=TYPES)
def __str__(self):
return self.user.username + ' (' + self.type + ')'
class Admin(Profile):
pass
class Certifier(Profile):
pass
class Designer(Profile):
certifier = models.ForeignKey(Certifier)
В Django 1.8 это работает отлично, но в 1.9 я получаю:
django.core.management.base.SystemCheckError: SystemCheckError: проверка системы выявила некоторые проблемы:
ОШИБКИ:
check.Designer.certifier: (models.E006) Поле "certifier" сталкивается с полем "certifier" из модели "check.profile".
(Profile.type не имеет значения в этом случае, мне просто нужно его отличить от зарегистрированных типов профилей пользователя).
check.profile, очевидно, не имеет поля 'certifier'. Это ошибка или мне что-то не хватает? То же самое происходит в другом проекте.