Как сохранить в базе данных каждый фрагмент информации, собранной многоступенчатой формой

Я пытаюсь создать многошаговую форму, но у меня возникают проблемы с сохранением всех данных формы. Когда я нажимаю кнопку 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']

Вернуться на верх