Ich versuche, das folgende Datenmodell in einer Django-Applikation zu implementieren:Django One-To-One und One-To-Many Beziehungen
Ein Projekt besteht aus drei Behältern: 1) umsetzbare 2) Referenzen 3) Backburner
Ein Eintrag kann innerhalb eines Projekts erstellt werden und muss einem der Container zugewiesen werden (er kann nicht frei schwebend bleiben).
Daher enthält ein Projekt immer die drei Container, von denen jeder leer sein kann. Ein Eintrag befindet sich immer in einem (und nur einem) der Container. Ein Eintrag kann jedoch von Container zu Container umgeschaltet werden.
Hier ist mein Versuch. Ist das überhaupt sinnvoll?
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)
ich sehe. Gibt es eine Möglichkeit, sicherzustellen, dass Container beim Erstellen eines Projekts erstellt werden? Oder soll ich nur einen Container für ein Projekt anlegen, wenn ein Eintrag dorthin verschoben werden soll? – MadPhysicist
Der Container ist nicht mehr ein separates Modell, es ist einfach ein Char-Feld im 'Entry'-Modell, wobei der 'Entry' direkt einen' ForeignKey' zum 'Project' hat. Sie müssen die Container nicht separat erstellen. – knbk
Verstanden. Vielen Dank! – MadPhysicist