Заполнение экземпляра модели данными другой модели во время создания экземпляра
Я создаю приложение в качестве учебного проекта на Django. Есть 3 класса моделей:
# MOC class
class Moc(models.Model):
name = models.CharField(max_length=128, blank=True, null=True)
my other fields...
def __str__(self):
return str(self.id)
def save(self, *args, **kwargs):
created = not self.pk
super().save(*args, **kwargs)
if created:
CheckList.objects.create(moc=self)
# Pre Implement class
class CheckList(models.Model):
moc = models.OneToOneField(Moc, related_name='checklist', on_delete=models.CASCADE, default='1')
name = models.CharField(max_length=128, blank=True, null=True)
def __str__(self):
return str(self.id)
def save(self, *args, **kwargs):
created = not self.pk
super().save(*args, **kwargs)
if created:
CheckListItem.objects.create(checklist=self)
# Pre Implement Items class
class CheckListItem(models.Model):
checklist = models.ForeignKey(CheckList, related_name='checklistitems', on_delete=models.CASCADE, default='1')
action_item = models.TextField(max_length=128, blank=True, null=True)
actionee_name = models.ForeignKey(User, related_name='actionee_ready_pre_implements', on_delete=models.CASCADE, default='1')
action_due = models.DateField(blank=True, null=True)
def __str__(self):
return str(self.id)
Я создаю экземпляр Moc и по сигналу сохранения создаю экземпляр класса CheckList и, соответственно, экземпляры класса CheckListItem.
Однако, представляя, что мой CheckList после создания всегда должен иметь 10 объектов CheckListItem в качестве предварительно заполненного списка (как начальные данные). Я не могу понять, можно ли это сделать (по крайней мере, как я пытаюсь достичь этого в соответствии с отношениями моей модели).
Я не хочу жестко кодировать эти элементы в моем HTML, я хочу контролировать добавление/удаление этих CheckListItems для связанных экземпляров Moc/CheckList как релевантных.
Любые мысли, пожалуйста?
Я решил эту проблему, используя InlineFormSets, поскольку он отвечает за отношения FK.