Отношения с внешними ключами в Django, с выбранным условием - PullRequest
1 голос
/ 14 сентября 2010

У меня есть таблица типа партнера

PartnerType
Name
Description
RelatedToProject

У меня есть PartnerMaster

Name
Address
PartnerType

У меня есть таблица проектов

Name
Partner (from partner master)

партнером в таблице проекта должны быть только те типы, у которых RelatedToProject = True

Как этого добиться в самом определении модели.

1 Ответ

1 голос
/ 14 сентября 2010

У меня нет большого опыта работы с Django, но вы можете рассмотреть возможность удаления поля RelatedToProject и добавления другого класса с именем PartnersRelatedToProjects (или что-то в этом роде). Затем просто установите нормальный внешний ключ из этого нового класса в таблицу Partner, а в классе Project установите нормальный внешний ключ для этой новой таблицы.

Затем вам нужно будет отследить, какие партнеры связаны с проектами, добавив их в новую таблицу PartnersRelatedToProjects.

class Partner(models.Model):
    Name = models.CharField(max_length=200)
    Description = models.CharField(max_length=200)

class PartnersRelatedToProjects(models.Model):
    partner = models.ForeignKey('Partner')

class Project(models.Model):
    name = models.CharField(max_length=200)
    partner = models.ForeignKey('PartnersRelatedToProjects')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...