Абстрактные модели Джанго с полями M2M - PullRequest
0 голосов
/ 09 декабря 2011

Предположим, у меня есть следующее:

class Base(Model):
    m2m_1 = ManyToManyField("SomeModel1")
    m2m_2 = ManyToManyField("SomeModel2")

    class Meta:
        abstract = True

class A(Base):
    def __init__(self):
        super(A, self).__init__()
    pass

class B(Base):
    def __init__(self):
        super(B, self).__init__()
    pass

Однако я не могу этого сделать, потому что для него требуется соответствующее имя для поля M2M. Однако это не помогает, поскольку модель абстрактна, и django пытается создать одинаковое имя для моделей A и B.

Есть идеи, как задать связанные названия для каждой модели в отдельности или даже вообще не использовать их?

1 Ответ

7 голосов
/ 09 декабря 2011

Ответ правильный в документах для абстрактных классов (в разделе, озаглавленном «Будьте осторожны с related_name»):

m2m = models.ManyToManyField(OtherModel, related_name="%(app_label)s_%(class)s_related")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...