【发布时间】:2011-08-15 08:16:09
【问题描述】:
我正在尝试更改通过复选框控制的 db 中的值,如果该项目的评论已经存在,我将使用它填充字段。目前我有一个隐藏字段,然后是一个 jQuery Mobile 复选框来控制它:
models.py:
fave = models.BooleanField()
ModelForms 面类:
'fave': HiddenInput(attrs={'value' : 'False'}),
还有我的评论表:
{% if review.fave == 'True' %}
<div class="ui-block-c">
<input type="checkbox" name="fave" id="checkbox-1" class="custom" checked="checked"/>
<label for="checkbox-1">fave</label>
</div>
{% else %}
<div class="ui-block-c">
<input type="checkbox" name="fave" id="checkbox-1" class="custom" />
<label for="checkbox-1">fave</label>
</div>
{% endif %}
隐藏字段是这样呈现给浏览器的:
<input type="hidden" name="fave" value="True" id="id_fave">
虽然我可以将复选框设置为非隐藏字段,但该任务使其符合 django 和 jQuery Mobile 的预期方式看起来令人生畏。
几个帖子列出了解决方案: Setting the value of a hidden input
,但似乎没有什么能按我想要的方式工作。我似乎无法覆盖value = True。
我缺少一些简单的东西吗?我是不是搞错了?
【问题讨论】:
-
我认为您正在尝试将字符串设置为布尔值
-
我也很担心这一点。我尝试了不带引号的
value = False,然后尝试了default=False(这给了我一个错误)。我将如何翻转该布尔值? -
{% if review.fave == 'True' %}我认为 fave 作为布尔值是不可能的。 -
这是绝对正确的。我正在尝试其他一些方法,然后将其保留。我最初使用
{% if review.fave %}来验证存在,然后如果存在则检查该字段。它听起来很粗糙,但也许我应该尝试一个 char 字段,并使用复选框来修改值。虽然看起来很hackish :-(
标签: html django django-forms