复选框在 Django 模板中返回空白值
checkbox returning blank value in a django template
我在我的模型中定义了一个 BooleanField class。我尝试使用 Django 模板中的复选框设置值,但在提交表单后我的视图中得到一个空白值。
模型class中的声明是:
enable = models.BooleanField(default=False)
我在模板中的代码如下:
<input type="checkbox" name="enable" id="enable" value="{{enable}}" /> Enable
提交表单后,我尝试在视图中的方法中像这样访问它:
enabled = request.POST['enable']
print enabled
如何检索复选框的值?
复选框的选中状态应通过 checked
属性设置:
<input type="checkbox" name="enable" id="enable" value="on"
{% if enable %}checked="checked"{% endif %} />
另一个问题是:如何将 enable
变量传递给模板上下文?我怀疑你传递了一些模型实例。如果是,那么您应该使用 enabled
作为此实例的 属性:
{% if obj.enable %}checked="checked"{% endif %}
其中 obj
是对象的名称。
要获取复选框的值,请使用 get()
方法。您甚至可以将其强制转换为布尔值:
enabled = bool(request.POST.get('enable'))
而且我还建议使用 django 表单而不是手动 html 操作。它更容易也更安全。
我在我的模型中定义了一个 BooleanField class。我尝试使用 Django 模板中的复选框设置值,但在提交表单后我的视图中得到一个空白值。
模型class中的声明是:
enable = models.BooleanField(default=False)
我在模板中的代码如下:
<input type="checkbox" name="enable" id="enable" value="{{enable}}" /> Enable
提交表单后,我尝试在视图中的方法中像这样访问它:
enabled = request.POST['enable']
print enabled
如何检索复选框的值?
复选框的选中状态应通过 checked
属性设置:
<input type="checkbox" name="enable" id="enable" value="on"
{% if enable %}checked="checked"{% endif %} />
另一个问题是:如何将 enable
变量传递给模板上下文?我怀疑你传递了一些模型实例。如果是,那么您应该使用 enabled
作为此实例的 属性:
{% if obj.enable %}checked="checked"{% endif %}
其中 obj
是对象的名称。
要获取复选框的值,请使用 get()
方法。您甚至可以将其强制转换为布尔值:
enabled = bool(request.POST.get('enable'))
而且我还建议使用 django 表单而不是手动 html 操作。它更容易也更安全。