Задать вопрос
kentuck1213
@kentuck1213

Как сделать такую связь?

Есть простые пользователи(исполнители). И есть проекты, и у проектов есть модули, и у проекта есть исполнители. В одном проекте могу участвовать несколько исполнителей. И у одного проекта могут быть несколько модулей. А вот у модулей есть один исполнитель.
Как можно сделать такую свзяь ?:
status_choice = (
    (0, 'Not ready'),
    (1, 'Ready')
)


class Project(models.Model):
    name = models.CharField(max_length=200)
    price = models.IntegerField()
    user = models.ManyToManyField(User, verbose_name='Executors')
    status = models.IntegerField(default=0, choices=status_choice)
    start_date = models.DateTimeField(blank=True, null=True)
    end_date = models.DateTimeField(blank=True, null=True)

    def __str__(self):
        return self.name


class Module(models.Model):
    name = models.CharField(max_length=200)
    project = models.ForeignKey(Project, on_delete=models.CASCADE)
    user = models.ForeignKey(Project.user, verbose_name='Executor')
    start_date = models.DateTimeField(blank=True, null=True)
    end_date = models.DateTimeField(blank=True, null=True)
    status = models.IntegerField(default=0, choices=status_choice)

    def __str__(self):
        return self.name

данный код просто показательный, вот тут: user = models.ForeignKey(Project.user, verbose_name='Executors') django не понимает что я хочу
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Оценить 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
zelsky
@zelsky
Брать ContentType Product и шаманить с полем User.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы