2013-10-17 32 views
1

你好,我是新来的Django表单上提交报表BooleanField。我正在尝试在我的表单中添加一个复选框。当我提交表单时,我期望复选框字段应该返回True或False,(取决于是否选中复选框)。Django表单“上”

但它“上”,如果现场检查和岗位咱这场未选中发布。 以下是从我的表单代码片段:

from django import forms 
class MyForm(forms.Form): 
    def __init__(self): 
     self.fields['has_code']= forms.CharField(widget= forms.CheckboxInput()) 

我要的是,当我发帖的形式,我应该得到后的数据为{“has_code”:真}

回答

6

那是你的浏览器,而不是Django的。但是(虽然你不显示你的看法,这会有所帮助),你正在寻找request.POST。不要这样做。使用Django的形式的全部意义在于,它标准化这样的东西,所以你应该看看在窗体的cleaned_data字典。

def my_form_view(request): 
    if request.method == 'POST': 
     my_form = MyForm(request.POST) 
     if my_form.is_valid(): 
      # my_form.cleaned_data['has_code'] is now a bool 

您还应该在窗体中使用BooleanField。另外,除非你正在做一些动态的事情,否则你不应该重写__init__。您的表单应该是:

class MyForm(forms.Form): 
    has_code = forms.BooleanField(widget= forms.CheckboxInput()) 
+0

这有帮助。是的,我正在寻找请求.POST Thanx。 – Pooja

+0

'CheckboxInput'是'BooleanBield'的默认选择。 您的代码可能只是'has_code = forms.BooleanField()' – mrnfrancesco