【问题标题】:BooleanField vs. CharField in Django ModelsDjango 模型中的 BooleanField 与 CharField
【发布时间】:2011-12-24 11:28:39
【问题描述】:

在我的应用模型中,我有一个BooleanField

campaign = models.BooleanField(default=False, db_index=True,
    verbose_name=_('processed'), help_text=_('Campaign or not ?'))

我用它来区分两件事。所以,我想把这个值作为隐藏在 html 表单中发送:

<input type="hidden" name="campaign" value="True or False" />

但似乎表单发送字符串,我想将该字符串转换为Boolean。当然,我可以重新编写模型,将其设为 CharFielddefault='True or False' 值,但这似乎不太优雅。

有没有更 djangoic 的方式来做到这一点?

【问题讨论】:

    标签: python html django django-models django-forms


    【解决方案1】:

    表单发送字符串,我想将该字符串转换为布尔值。

    request.POST 中的所有数据都以字符串或字符串列表的形式出现。您需要自己进行转换或使用为您完成工作的 django 表单(首选)。

    使用 django 表单,您可以在启动 forms.BooleanField 时替换小部件,如下所示:

    class MyForm(forms.ModelForm):
    
        campaign = forms.BooleanField(widget=forms.HiddenInput())
    

    More info on django forms

    【讨论】:

    • 对不起,我不听。如果我进行此覆盖,它是否接受 ,这基本上是一个字符串,来自我的 html 表单?
    • 我已经更新了我的答案。基本上,django 表单会为您完成转换,因此您无需担心。它还允许您编写自己的转换规则。
    • django 可以帮助您为表单生成 html。请参阅上面帖子中的文档链接
    • 感谢您的回答,我会在阅读表单文档后尝试:)
    猜你喜欢
    • 2016-08-10
    • 1970-01-01
    • 2018-10-10
    • 2017-08-17
    • 2016-09-18
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    相关资源
    最近更新 更多