Как правильно реализовать мастер сессий формы Django
Я уже несколько часов пытаюсь создать многоступенчатую форму с помощью мастера сессий Django, но постоянно получаю ошибку AttributeError: 'function' object has no property 'as_view'.
Я не уверен, почему произошла эта ошибка. Есть идеи?
просмотров
from django.shortcuts import render
from formtools.wizard.views import SessionWizardView
from .forms import WithdrawForm1, WithdrawForm2
class WithdrawWizard(SessionWizardView):
template_name = 'withdraw.html'
form_list = [WithdrawForm1, WithdrawForm2]
def done(self, form_list, **kwargs):
form_data = [form.cleaned_data for form in form_list]
return render(self.request, 'done.html', {'data': form_data})
формы
from django import forms
from .models import Investment, Withdraw
from .models import WithdrawStepOne, WithdrawStepTwo
class WithdrawForm1(forms.ModelForm):
class Meta:
model = WithdrawStepOne
fields = ['investment_id',]
class WithdrawForm2(forms.ModelForm):
class Meta:
model = WithdrawStepTwo
fields = [
'proof_of_address',
'user_pic'
]
from django.urls import path
from .forms import WithdrawForm1, WithdrawForm2
from . import views
urlpatterns = [
path('withdraw/', views.WithdrawWizard.as_view(), name='withdraw'),
]
Вы использовали декоратор @login_required в классе WithdrawWizard, но декоратор работает только для представлений, основанных на функциях.
Используйте LoginRequiredMixin для представлений, основанных на классах.