Ste*_*nTG 4 django django-templates
有没有办法在使用Django的模板中否定python布尔变量?我尝试了以下两种方法:
<td>{{ !variable_name }}</td>
<td>{{ not variable_name }}</td>
Run Code Online (Sandbox Code Playgroud)
但两者都给了我一个TemplateSyntaxError.
我意识到我能做到:
<td>{% if variable_name %} False {% else %} True {% endif %}</td>
Run Code Online (Sandbox Code Playgroud)
但这看起来很笨重.我希望可能有一个更清洁的方法.
mar*_*rue 12
根据Django文档中的这个例子,"not"应该可以工作:
{% if not athlete_list %}
There are no athletes.
{% endif %}
Run Code Online (Sandbox Code Playgroud)
你可以在这里找到这个例子:https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#boolean-operators
如果你想直接得到一个布尔值的字符串表示,我恐怕你必须去你所描述的笨重.{{variable}}输出变量内容的字符串表示或调用函数.
编辑:
如果你真的需要获得布尔值的逆值,我建议为此创建一个简单的模板标签:
from django import template
register = template.Library()
@register.simple_tag
def negate(boolean):
return (not boolean).__str__()
Run Code Online (Sandbox Code Playgroud)
把它放在your_app/templatetags/templatetags.py中,你可以在你的模板中使用它,如下所示:
{% negate your_variable %}
Run Code Online (Sandbox Code Playgroud)
相当昂贵,我会坚持garnertb的答案.
gar*_*rtb 12
怎么样YESNO模板标签?
{{ value|yesno:"False,True" }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5744 次 |
| 最近记录: |