您好,我根据Django中的Form Choice重定向到了不同的页面。我有4种不同的选择可供选择,但是每个人的下一页都不同。我做这样的事情:
forms.py
class DodajForm(forms.ModelForm):
class Meta:
model = Atrakcje
exclude = ['user']
fields = ['tytul', 'opis', 'kategoriaa', 'adres',
'wojewodztwo', 'miasto', 'telefon', 'zdjecie', 'wideo',
'email', 'strona', 'facebook', 'kodpocztowy', 'zaswiadczenia', 'pakiet', 'cena', 'dla']
widgets = {
'kategoriaa': forms.Select(
attrs={
'class': 'form-control'
}
),
'pakiet': forms.Select(
attrs={
'class': 'form-control'
}
),
'tytul': forms.TextInput(
attrs={
'class': 'form-label'
}
),
'opis': forms.Textarea(
attrs={
'class': 'form-control'
}
),
'zdjecie': forms.FileInput(
attrs={
'class': 'dropzone dz-clickable',
}
),
'zaswiadczenia': forms.FileInput(
attrs={
'class': 'dropzone dz-clickable',
}
),
}
views.py
def formularz(request):
form = DodajForm(request.POST)
if form.is_valid():
ogloszenie = form.save(commit=False)
ogloszenie.user = request.user
ogloszenie.save()
if form.pakiet == "free":
return redirect('atrakcje:after')
elif form.pakiet == "pakiet1":
return redirect('atrakcje:after1')
elif form.pakiet == "pakiet2":
return redirect('atrakcje:after2')
else:
return redirect('atrakcje:after3')
else:
ogloszenie = DodajForm()
context = {
'form': form,}
return render(request, 'formularz.html', context)
在这样的每个选择上我都有错误:
“ / atrakcje / formularz / 'DodajForm'对象没有属性'pakiet'
此行有一个错误: 如果form.pakiet ==“免费”:
任何建议如何解决这个问题?
答案 0 :(得分:1)
您需要致电form.cleaned_data['pakiet']
答案 1 :(得分:1)
您需要首先从这样的表单中提取“ pakiet”字段的数据
data = form.cleaned_data['pakiet']
if data == "free":
return redirect('atrakcje:after')
elif data == "pakiet1":
return redirect('atrakcje:after1')
elif data == "pakiet2":
return redirect('atrakcje:after2')
else:
return redirect('atrakcje:after3')