单选按钮django形式的初始值

gad*_*dss 9 python django django-templates

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

form.py

YESNO = (
    ('Yes','Yes'),
    ('No', 'No'),
)
class MyForm(forms.Form):
   like = forms.ChoiceField(widget=forms.RadioSelect, choices=YESNO)
Run Code Online (Sandbox Code Playgroud)

myhtml.html

{{form.like}}
Run Code Online (Sandbox Code Playgroud)

我试着把:

like = forms.ChoiceField(widget=forms.RadioSelect, choices=YESNO, initial={'Yes':'Yes'})
Run Code Online (Sandbox Code Playgroud)

当我运行我的代码时,我的单选按钮尚未选中..

sha*_*ker 6

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

def myviews(request):
  .....
  form = MyForm(initial={'like':'Yes'})
  ...
Run Code Online (Sandbox Code Playgroud)


gad*_*dss 5

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

def myviews(request):
  .....
  form = MyForm({'like':'Yes'})
  ...
Run Code Online (Sandbox Code Playgroud)

  • -1. 这是 `data` 参数,正如 Jingo 所说,它会触发验证。改用 `initial` 参数。 (9认同)
  • 对于单选按钮,这似乎没问题,对于其他字段,尤其是那些需要用户输入(如文本)的字段,这将触发验证。 (2认同)