Django syncdb конфликтует related_name при использовании наследования и ForeignKey

На этот раз я думаю, что это не я глупый, а настоящий конфликт. У меня есть следующий код (упрощенный):

from django.db import models

class Alpha(models.Model):
    relation = models.ForeignKey('Delta', related_name = 'reverse_relation', blank = True, null = True)

    class Meta:
        abstract = True

class Beta(Alpha):
    pass

class Gamma(Alpha):
    pass

class Delta(models.Model):
    pass

Проблема в том, что Delta.reverse_relation может относиться к экземпляру Beta или экземпляру Gamma. Мне как-то пришлось бы указать несколько значений related_name (или одно, зависящее от имени класса). Я думаю, что проблема ясна, но, чтобы завершить, ошибка (при запуске syncdb): app.beta: Аксессор поля «отношение» конфликтует со связанным полем «Delta.reverse_relation». Добавьте аргумент related_name к определению "отношения".
app.beta: имя обратного запроса для поля «отношение» конфликтует со связанным полем «Delta.reverse_relation». Добавьте аргумент related_name к определению "отношения".
app.gamma: Аксессор для поля 'Relationship' конфликтует со связанным полем 'Delta.reverse_relation'. Добавьте аргумент related_name к определению "отношения".
app.gamma: имя обратного запроса для поля «отношение» конфликтует со связанным полем «Delta.reverse_relation». Добавьте аргумент related_name к определению «отношения».

Можно ли вообще поместить ForeignKey в родительский Alpha, или это единственный способ вырезать и вставить этот код в Beta и Gamma? Я предпочитаю этого не делать, потому что это как бы побеждает точку наследования, если я не могу определить в родительской половине поля, которые разделяют все дочерние элементы.

Любая помощь приветствуется!

(Если кто-нибудь может прокомментировать с почему сообщений об ошибках нет в поле кода, я исправлю это.)

12
задан Mark 25 April 2011 в 15:02
поделиться