Я новичок в 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 должен отображаться только тогда, когда options- = 1 выбран Может кто-то пожалуйста, помогите, что происходит не так?
Спасибо за ответ Daniel. Я попробую ваши предложения. Я мог бы снова побеспокоить вас, если это не сработает. Еще раз спасибо – user3364086
Привет, Дэниэл, я попробовал ваши предложенные изменения, но это не сработало. Я изменил свой пост. Поскольку я новичок, я не уверен, правильно ли я делаю это. Можете ли вы просмотреть или уточнить код для меня. Спасибо – user3364086
Вы по-прежнему не вызываете 'form.is_valid()' в методе 'post'. И шаблон должен ссылаться на 'form.errors'. –