42

我有一些打印 BooleanField 的 django 代码

它呈现为真或假,我可以将标签更改为同意/不同意,还是需要在模板中为此编写逻辑?

4

4 回答 4

99
{{ bool_var|yesno:"Agree,Disagree" }}

您还可以为 None 情况提供额外的字符串。有关详细信息,请参阅yesno的文档。

于 2009-05-10T21:33:05.790 回答
2

如果您想拥有更多选项,例如添加 HTML 元素和类,这只是另一种方式

{% if var == True %} Yes {% else %} No {% endif %}

您可以将 Yes 和 No 更改为任何 html 元素;图像或跨度元素

于 2020-12-19T15:31:49.110 回答
0

如果您的模型已定义为

class mymodel(models.Model):
    choices=((True, 'Agree'), (False,'Disagree'),(None,"Maybe"))
    attr = models.BooleanField(choices=choices, blank=False, null=True)

您可以使用内置方法来检索与模板中的值关联的“漂亮”字符串

{{ object.get_attr_display }}
于 2021-11-30T12:02:02.833 回答
0

可以尝试以下任何一种方法并获得一致的结果:

一种。

{% if  form.my_bool.value %} 
    {{ "Yes" }} 
{% else %} 
    {{ "No" }} 
{% endif %} 

B.

{{ form.my_bool.value|yesno }}

C。

{{ form.my_bool.value|yesno:"Yes,No" }}

D.

{% if form.my_bool.value == True %} Yes {% else %} No {% endif %}

或者简单地说,

{{ form.my_bool.value }}    # Here the output will be True or False, as the case may be.
于 2022-02-23T18:56:51.067 回答