【问题标题】:initial value in radio button django form单选按钮 django 表单中的初始值
【发布时间】:2012-03-23 15:31:21
【问题描述】:

如何声明单选按钮的初始值?

form.py

YESNO = (
    ('Yes','Yes'),
    ('No', 'No'),
)
class MyForm(forms.Form):
   like = forms.ChoiceField(widget=forms.RadioSelect, choices=YESNO)

我的html.html

{{form.like}}

我试着说:

like = forms.ChoiceField(widget=forms.RadioSelect, choices=YESNO, initial={'Yes':'Yes'})

当我运行我的代码时,我的单选按钮还没有被选中..

【问题讨论】:

  • initial = {'like':'Yes'}

标签: python django django-templates


【解决方案1】:

这是它的工作方式initial='N',它是元组中的第一项。 Choices=(('Y','Yes'), ('N','No') rs_field = forms.ChoiceField(choices=Choices),initial='N', widget=forms.RadioSelect)

【讨论】:

    【解决方案2】:

    您可以查看文档forms field initial

    【讨论】:

      【解决方案3】:

      是的,这应该在视图中完成,但接受答案中的语法不正确,因为它会在提交表单之前触发所有字段的字段验证。改为使用:

      def myviews(request):
        .....
        form = MyForm(initial={'like':'Yes'})
        ...
      

      【讨论】:

        【解决方案4】:

        我把初始值直接放在我的views.py...

        def myviews(request):
          .....
          form = MyForm({'like':'Yes'})
          ...
        

        【讨论】:

        • 对于单选按钮,这似乎没问题,对于其他字段,尤其是那些需要用户输入如文本的字段,这将触发验证。
        • -1。这是data 参数,正如Jingo 所说,它会触发验证。请改用initial 参数。
        • 同意。这样做会导致同一表单上的空 CharFields 等内容在页面加载时而不是在提交之后显示验证错误。
        猜你喜欢
        • 2016-07-28
        • 1970-01-01
        • 2011-06-10
        • 2013-02-22
        • 2015-09-04
        • 1970-01-01
        • 2016-10-02
        • 2017-01-24
        • 2011-06-10
        相关资源
        最近更新 更多