Почему мое начальное значение не устанавливается для моей формы Django?

#python #django #django-forms

#python #django #django-forms

Вопрос:

Вот соответствующие фрагменты

forms.py

 usersegment = [['non-paying','Non-paying (Coming soon)'],['paying','Paying (Coming soon)'], ['all', 'All']]

class SegmentForm(forms.Form):
    usersegment = forms.ChoiceField(label="", widget=RadioSelect(), choices=usersegment)
  

views.py

 if request.method == 'GET' and 'datestart' in request.GET:

    return render_to_response('activation/activation_signupcount.html', 
                            {   'datestart': request.GET['datestart'], 
                                'dateend': request.GET['dateend'], 
                                'usersegment': request.GET['usersegment'], 
                                'form': SegmentForm(request.GET), 
                                'form2': DateSelectForm(request.GET)    })
else:

    return render_to_response('activation/activation_signupcount.html', 
                            {'form': SegmentForm(initial={'all':'All'}), 'form2': DateSelectForm()})
  

Ответ №1:

инициалы — это пара ключ: значение (имя_поля / значение). это должно выглядеть следующим образом,

 else:
    return render_to_response('activation/activation_signupcount.html', 
              {'form': SegmentForm(initial={'usersegment':'all'}), 
               'form2': DateSelectForm()
              })
  

Комментарии:

1. хорошо, в этом гораздо больше смысла. Я бы хотел, чтобы кто-нибудь сказал key: value в других ответах SO. Спасибо за это. Я думаю, что более опытный программист понял бы это, взглянув на фигурные скобки.

2. кстати, есть ли где-нибудь на forms.py Я могу установить это, чтобы мне не приходилось повторять initial={'usersegment':'all'} для всех моих просмотров? Я попытался добавить это следующим образом usersegment = forms.ChoiceField(label="", widget=RadioSelect(), choices=usersegment, initial={'usersegment':'all'}) , но это не сработало. Спасибо.

3. да, usersegment = формы. Поле выбора (initial=’all’ label=»», widget=RadioSelect(), choices=пользовательский сегмент)