@NikClik

Как создать форму для добавления записей в 2 связанные model?

Есть 2 связанные через ForeignKey модели, естественно одна-родительская и друга-дочерняя.
class GroupTasks(models.Model):
    TASK_STATUS = {
        ('В процессе выполенения', 'В процессе выполенения'),
        ('В ожидании выполнения', 'В ожидании выполнения'),
        ('Выполнение закончено', 'Выполнение закончено'),
    }
    owner = models.CharField(blank=True, verbose_name="Владелец", max_length=1000000, editable=False)
    header = models.CharField(blank=False, verbose_name="Заголовок задачи", max_length=1000000)
    dateOfStart = models.DateTimeField(blank=False, verbose_name="Дата, время начала задачи")
    dateOfEnd = models.DateTimeField(blank=True, verbose_name="Дата, время окончания задачи")
    progress = models.IntegerField(default=0, verbose_name="Прогресс")
    status = models.CharField(choices=TASK_STATUS, verbose_name="Статус", max_length=1000000, default="В ожидании выполнения")

    def __str__(self):
        return "Групповая задача %s" % (self.header, )

    class Meta:
        verbose_name = 'Групповые задачи'
        verbose_name_plural = 'Групповые задачи'


class UnderTask(models.Model):
    TASK_STATUS = {
        ('В процессе выполенеия', 'В процессе выполенеия'),
        ('В ожидании выполнения', 'В ожидании выполнения'),
        ('Выполнение закончено', 'Выполнение закончено'),
    }
    headerTask = models.ForeignKey(GroupTasks, on_delete=models.CASCADE, editable=False)
    creator = models.CharField(max_length=1000000, verbose_name="Создатель", blank=True, editable=False)
    excerpt = models.CharField(max_length=1000000, verbose_name="Выполняющий")
    actions = models.TextField(blank=False, max_length=1000000, verbose_name="Выполняемые работы")
    dateOfStart = models.DateTimeField(blank=False, verbose_name="Дата, время начала задачи")
    dateOfEnd = models.DateTimeField(blank=True, verbose_name="Дата, время окончания задачи")
    step = models.IntegerField(blank=False, default=0, verbose_name="Шаг")
    status = models.CharField(choices=TASK_STATUS, default="В ожидании выполнения", max_length=1000000, verbose_name="Статус выполнения")

    def __str__(self):
        return "Подзадача %s" % (self.excerpt,)

    class Meta:
        verbose_name = 'Подзадачи'
        verbose_name_plural = 'Подзадачи'


Не знаю как создать шаблон для добавления записи и в родительскую, и несколько записей в дочернюю модели, т.е это шаблон который функционирует как inlines в admin. Может есть у кого идеи или кто-то отвечал на подобные вопросы?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
@V-ampre
Создай форму какую тебе надо,а потом во вьюхе вручную укажи в какую модель какие поля сохранять, например:

if request.method == 'POST':
    form = YourTaskForm(request.POST)
    if form.is_valid():
        group_task = GroupTasks(owner=form.cleaned_data['owner']) # только добавьте все поля
        group_task.save()
        under_task=UnderTask(headerTask=group_task, creator=form.cleaned_data['creator']) # добавить все поля
        under_task.save()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы