Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Вопрос с наследованием и связями между моделями и related_name [RSS Feed]

#1 Ноя. 4, 2009 10:25:46

vvp91
От:
Зарегистрирован: 2009-06-08
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос с наследованием и связями между моделями и related_name

Есть следующая иерархия:

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
Валидацию (manage.py validate) модель не проходит, пишет:
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?



Офлайн

#2 Ноя. 4, 2009 10:51:42

vvp91
От:
Зарегистрирован: 2009-06-08
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос с наследованием и связями между моделями и related_name

vvp91
ВОПРОС: Как задать значение related_name для аттрибута partner в каждом конечном классе PrivateDemand и PrivateOffer?
Сформулировав подробно вопрос, тут же нашел ответ. Воистину - полезно поговорить с умными людьми.
Помого раздел документации http://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-related-name



Офлайн

  • Начало
  • » Django
  • » Вопрос с наследованием и связями между моделями и related_name[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version