0
我是新來的Django。我需要根據特定條件顯示一些字段和表單。我有我的forms.py作爲問題而在Django顯示領域形成
class ArgsForm(forms.Form):
run_options = forms.MultipleChoiceField(label='Default Options', choices=(('dataQA','DataQA'),('merge','Merge')), required=False,
widget=forms.CheckboxSelectMultiple(attrs={'checked' : 'checked'}))
class CharOptionForm(forms.Form):
name = forms.CharField(label='Name', required=False)
char_choices=(('1','CC Char',), ('0','IC Char',))
options = forms.ChoiceField(required=True, label='Run Type', widget=forms.RadioSelect, choices=char_choices, initial='1')
def clean(self,request):
data = self.cleaned_data
if data.get('options', 1):
raise forms.ValidationError('Match found')
else:
raise forms.ValidationError('Provide more data')
My view.py is
class TechnologyView(View):
app = AutoCharEvalApp
def get(self, request, *args, **kwargs):
form = CharOptionForm()
return render(request, 'autochar/charoption.html', {'form': form, 'view': self})
def post(self, request, *args, **kwargs):
form = CharOptionForm(request.POST)
return HttpResponseRedirect(reverse('autochar:main', args=(form,)))
在模板中我已經加入
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
基本上我想ArgsForm只應顯示在選項 - = 1時一個人可以幫什麼錯誤?
感謝您的答覆丹尼爾。我會嘗試你的建議。如果它不起作用,我可能會再次打擾你。再次感謝 – user3364086 2014-08-28 10:06:38
嗨丹尼爾,我試過你的建議更改仍然無效。我修改了我的帖子。由於我是新的,我不確定我是否正確地做。你可以請審查或改進我的代碼。謝謝 – user3364086 2014-08-28 10:33:28
你仍然沒有在'post'方法中調用'form.is_valid()'。模板應該引用'form.errors'。 – 2014-08-28 11:49:34