Как сохранить в базе данных каждый фрагмент информации, собранной многоступенчатой формой
Я пытаюсь создать многошаговую форму, но у меня возникают проблемы с сохранением всех данных формы. Когда я нажимаю кнопку submit, я могу сохранить только идентификатор инвестиции, который является полем ввода на первом шаге. Остальные поля не сохраняются в базе данных. Есть идеи, что я не понимаю? Я фактически следовал этому примеру Многошаговая форма, но не знаю, почему моя не работает. Я не хочу использовать инструменты форм Django.
просмотров
from django.shortcuts import render, reverse
from django.http import HttpResponseRedirect
from .models import Withdraw
def create_withdraw(request):
if request.method != 'POST':
return HttpResponseRedirect(reverse('investment:withdraw'))
else:
investment_id = request.POST.get('investment_id')
front_id = request.FILES.get('front_id')
back_id = request.FILES.get('back_id')
id_no = request.POST.get('id_no')
proof_of_address = request.FILES.get('proof_of_address')
user_pic = request.FILES.get('user_pic')
try:
withdraw = Withdraw.objects.create(
investment_id=investment_id,
front_id=front_id,
back_id=back_id,
id_no=id_no,
proof_of_address=proof_of_address,
user_pic=user_pic
)
withdraw.save()
messages.success(request, 'withdrawal request submitted successfully')
return HttpResponseRedirect(reverse('investment:withdraw'))
except:
messages.success(request, 'request failed! Try again')
return HttpResponseRedirect(reverse('investment:withdraw'))
модель
from django.db import models
class Withdraw(models.Model):
investment_id = models.CharField(max_length=20, null=True)
front_id = models.ImageField(upload_to="user_doc", null=True, blank=True)
back_id = models.ImageField(upload_to="user_doc", null=True, blank=True)
id_no = models.CharField(max_length=20, null=True, blank=True)
proof_of_address = models.FileField(upload_to="users_doc", null=True, blank=True)
user_pic = models.ImageField(upload_to="user_doc", null=True, blank=True)
created_at = models.DateTimeField(auto_now=True, null=True, blank=True)
def __str__(self):
return self.investment_id
шаблон
сначала у вас в форме нет ввода id_no
, затем попробуйте получить файлы типа front_id = request.FILES['front_id']