Как сохранить две формы в одной модели в Django? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть две формы Django одной и той же модели в одном представлении, поэтому, когда я пытаюсь сохранить их, я получаю два объекта модели, и моя цель - получить один объект с данными обеих форм.

Я пытался сохранить обе формы отдельно, что привело к созданию двух объектов. Кроме того, я думал о сохранении одной формы, а затем об обновлении второй, но я просто не знаю, как это сделать.

    if request.method == 'POST':
        animal_form_required = AddAnimalFormRequired(data=request.POST)
        animal_form_optional = AddAnimalFormOptional(data=request.POST)
        if animal_form_required.is_valid() and animal_form_optional.is_valid():

            animal_required = animal_form_required.save(commit=False)
            animal_required.save()

            animal_optional = animal_form_optional.save()
            animal_optional.save()

            return render(...)

animal_required и animal_optional - это две формы и animal это модель. Обе формы имеют разные атрибуты животного. После этого я получаю два объекта animal: один с атрибутами animal_required и один с атрибутами animal_optional. Как я могу получить один единственный объект animal со всеми атрибутами? Большое спасибо заранее!

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете сохранить первый Form, а затем передать созданный объект во вторую форму следующим образом:

if request.method == 'POST':
    animal_form_required = AddAnimalFormRequired(data=request.POST)
    animal_form_optional = AddAnimalFormOptional(data=request.POST)
    if animal_form_required.is_valid() and animal_form_optional.is_valid():

        created_animal = animal_form_required.save()

        animal_optional.instance = created_animal
        animal_optional.save()

        return render(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...