from django.db import models
class BaseModel(models.Model)
class Meta:
abstract = True
class Member(BaseModel)
pass
class BaseTradeItem(BaseModel)
member = models.ForeignKey(Member,verbose_name=_(u'Участник'))
class Meta:
abstract = True
class PrivateTradeItem(BaseTradeItem):
partner = models.ForeignKey(Member,verbose_name=_(u'Адресат')) # ЗДЕСЬ НАЧИНАЕТСЯ ПРОБЛЕМА
class Meta:
abstract = True
class PrivateOffer(PrivateTradeItem):
pass
class PrivateDemand(PrivateTradeItem):
pass
privateoffer: Accessor for field ‘member’ clashes with related field ‘Member.privateoffer_set’. Add a related_name argument to the definition for ‘member’.
privateoffer: Accessor for field ‘partner’ clashes with related field ‘Member.privateoffer_set’. Add a related_name argument to the definition for ‘partner’.
Естественно, что классы обладают дополнительными аттрибутами, которые здесь не показаны. От BaseTradeItem, помимо абстрактного PrivateTradeItem, есть конечные наследники, для которых джанга сама корректно определяет значение related_name аттрибута member.
Выделять аттрибут partner из базового класса PrivateTradeItem в каждый конечный класс PrivateDemand и PrivateOffer - это самое простое, но и самое неверное решение.
ВОПРОС: Как задать значение related_name для аттрибута partner в каждом конечном классе PrivateDemand и PrivateOffer?