Я сдаюсь медленно, пожалуйста, помогите!
У меня есть трехступенчатая форма для создания двух объектов Pet и LostPet.
Поле 1 - имя питомца. Поле 2 - тип питомца.
Поле 3 - имя потерянного_пользователя. Поле 4 - потерянное имя_этапа и т. Д. c.
дополнительная информация о Pet Field1 - Pet.chip_number Field2 - Pet.color
- Step3: страница благодарности
На шаге 1 я просто отображаю форму, На Шаге 2 я создаю объект Pet только с именем, типом и сохраняю его:
if request.method == 'POST':
form = LostPetSteModel1a(request.POST, instance=pet)
if form.is_valid():
pet.save()
Я также создаю объект LostPet, связанный с новым Pet:
lostpet_form = LostPetStepModel1b(request.POST, request.FILES, instance=lostpet)
lostpet.pet = pet
lostpet.save()
На последнем шаге Я извлекаю объект Pet из БД и обновляю его дополнительными полями из form2:
pet = Pet()
pet_form = AnimalLostPetStep2(request.POST, instance=pet)
pet_db = get_object_or_404(Pet, id=request.session['pet'])
pet.animal_id = pet_db.animal_id
pet.pk = pet_db.pk
pet.name = pet_db.name
pet.save()
В сеансе отладчика все работает нормально. В обычном режиме runserver у меня не сохранено несколько полей. В основном это адрес электронной почты из модели LostPet и все дополнительные поля из шага 2. Как я уже говорил, когда я отлаживаю шаг за шагом, все работает нормально. Все поля правильно заполнены и сохранены в базе данных. Знаете ли вы, каково решение этой проблемы? Если вы понимаете, чего я хочу достичь, возможно, у вас есть лучший способ сохранить два отдельных объекта в двухступенчатых формах. Этот подход выше - лучшее, что я мог придумать самостоятельно. Спасибо!
С уважением, Адам