Я пытаюсь реализовать следующую модель данных в приложении Django:Джанго One-To-One и One-ко-многим отношениям
Проект состоит из 3-х контейнеров: 1) Осуществимое 2) Ссылки 3) Backburner
Ввод может быть создан в рамках проекта и должен быть привязан к любому из контейнеров (он не может оставаться свободно плавающим).
Следовательно, проект всегда содержит три контейнера, любой из которых может быть пустым. Вход всегда находится в одном (и только одном) контейнере. Однако запись может быть переключена из контейнера в контейнер.
Вот моя попытка. Это вообще разумно?
class Project(models.Model):
project_title = models.CharField()
created_date = models.DateTimeField('date created')
class References(models.Model):
project = models.OneToOneField(
Project,
on_delete=models.CASCADE,
primary_key=True,
)
class BackburnerItems(models.Model):
project = models.OneToOneField(
Project,
on_delete=models.CASCADE,
primary_key=True,
)
class ActionSteps(models.Model):
project = models.OneToOneField(
Project,
on_delete=models.CASCADE,
primary_key=True,
)
class Entry(models.Model):
title = models.CharField(max_length=200)
description = models.CharField(max_length=200)
action_steps = models.ForeignKey(ActionSteps)
references = models.ForeignKey(References)
backburner = models.ForeignKey(BackburnerItems)
Я вижу. Есть ли способ обеспечить создание контейнеров при создании проекта? Или я должен создать контейнер для проекта, если там будет перемещена запись? – MadPhysicist
Контейнер больше не является отдельной моделью, это просто поле символов в модели «Entry», а 'Entry' имеет' ForeignKey' непосредственно в 'Project'. Нет необходимости создавать контейнеры отдельно. – knbk
Понял. Спасибо! – MadPhysicist