Многошаговая форма Django

У меня есть многошаговая форма, которая состоит из 3 шагов, но имеет 4 формы. В первой форме пользователь должен выбрать один из двух вариантов. Выбор пользователем первой формы определяет следующую форму, которая будет отображаться. Шаблон первой формы

{% extends 'base.html' %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>

    {% block head %}
    {% endblock %}
</head>
<body>

    {% block content %}

    {% if form.customer_choices == 'commercial': %}
    <form action="{% url 'datacollector:step2aformview' %}" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Submit">
    </form>
    {% else %}

    <form action="{% url 'datacollector:step2bformview' %}" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Submit">
    </form>

    {% endif %}

    {% endblock %}
    
</body>
</html>

form.py

from .models import CustomerInfo, CustomerDocument 
from django.forms import ModelForm
from django import forms



CUSTOMER_CHOICES = [
    ('commercial', 'Commercial'),
    ('private', 'Private'),
]

class CustomerTypeForm(forms.Form):
    customer_chioces = forms.CharField(label="Customertype", widget=forms.RadioSelect(choices=CUSTOMER_CHOICES))
    
   
#Commercial customer information
class CustomerInfoForm1(ModelForm):
    class Meta:
        model = CustomerInfo
        fields = "__all__"

#Private customer information
class CustomerInfoForm2(ModelForm):
    class Meta:
        model = CustomerInfo
        fields = ['name1', 'name2', 'name3', 'street', 'house', 'zip1', 'city']
        

class CustomerDocumentForm(forms.ModelForm):
    class Meta:
        model = CustomerDocument
        fields = ['document']

Виды

from django.shortcuts import render
from datacollector.forms import  CustomerTypeForm, CustomerInfoForm1, CustomerInfoForm2, CustomerDocumentForm
from django.urls import reverse
from django.http import HttpResponse, HttpResponseRedirect



# Create your views here.

def step1formview(request):
    initial = {'customer_chioces': request.session.get('customer_chioces', None), }    
    form = CustomerTypeForm(request.POST or None, initial=initial)
    if request.method == 'POST':
        if form.is_valid():
            request.session['customer_choices'] = form.cleaned_data['customer_choices']
            if form.customer_choices == 'commercial':
                return HttpResponseRedirect(reverse('datacollector:step2aformview'))
            else:
                return HttpResponseRedirect(reverse('datacollector:step2bformview'))
           
    return render(request, 'forms/CustomerTypeForm.html', {'form': form})

Ошибка: django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: ':' from ''commercial':'

Пожалуйста, как я могу найти способ обойти это? Проверьте мои представления и шаблон

Ну, на самом деле у вас здесь опечатка:

{% if form.customer_choices == 'commercial': %}

лишняя точка с запятой :

Попробуйте удалить его

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