Django 表中的条件
Conditional in Django Tables
我试图在我的 Django table 中包含一个条件语句,但我在寻找正确的语法时遇到了一些问题。
我的一个模型中有一个布尔字段,基于该值 - 我想为该特定数据库记录呈现不同的 label_link
和回调 url。
这是我使用的代码:
class Feature(BaseTable):
orderable = False
title_english = tables.Column()
featured_item = tables.Column()
if (featured_item == False):
actions = tables.TemplateColumn("""
{% url 'add_feature' pk=record.pk as url_ %}
{% label_link url_ 'Add to Features' %}
""", attrs=dict(cell={'class': 'span1'}))
else:
actions = tables.TemplateColumn("""
{% url 'remove_feature' pk=record.pk as url_ %}
{% label_link url_ 'Remove From Features' %}
""", attrs=dict(cell={'class': 'span1'}))
现在我知道目前这只是检查值是否存在 - 因此总是在 else
语句下呈现代码。
我一直无法找到涵盖 Django tables 的这种特殊细微差别的任何文档。
注意:我使用的是 Django 1.5 和 Python 2.7
您不能将 if 语句放入 Feature
class - 它在加载 class 时处理,因此您无权访问 table 数据了。
在 TemplateColumn
中,您可以使用 record
访问 table 的当前行,因此您可以将逻辑移到那里。
class Feature(BaseTable):
...
actions = tables.TemplateColumn("""
{% if not record.featured_item %}
{% url 'add_feature' pk=record.pk as url_ %}
{% label_link url_ 'Add to Features' %}
{% else %}
{% url 'remove_feature' pk=record.pk as url_ %}
{% label_link url_ 'Remove From Features' %}
{% endif %}
""", attrs=dict(cell={'class': 'span1'}))
我试图在我的 Django table 中包含一个条件语句,但我在寻找正确的语法时遇到了一些问题。
我的一个模型中有一个布尔字段,基于该值 - 我想为该特定数据库记录呈现不同的 label_link
和回调 url。
这是我使用的代码:
class Feature(BaseTable):
orderable = False
title_english = tables.Column()
featured_item = tables.Column()
if (featured_item == False):
actions = tables.TemplateColumn("""
{% url 'add_feature' pk=record.pk as url_ %}
{% label_link url_ 'Add to Features' %}
""", attrs=dict(cell={'class': 'span1'}))
else:
actions = tables.TemplateColumn("""
{% url 'remove_feature' pk=record.pk as url_ %}
{% label_link url_ 'Remove From Features' %}
""", attrs=dict(cell={'class': 'span1'}))
现在我知道目前这只是检查值是否存在 - 因此总是在 else
语句下呈现代码。
我一直无法找到涵盖 Django tables 的这种特殊细微差别的任何文档。
注意:我使用的是 Django 1.5 和 Python 2.7
您不能将 if 语句放入 Feature
class - 它在加载 class 时处理,因此您无权访问 table 数据了。
在 TemplateColumn
中,您可以使用 record
访问 table 的当前行,因此您可以将逻辑移到那里。
class Feature(BaseTable):
...
actions = tables.TemplateColumn("""
{% if not record.featured_item %}
{% url 'add_feature' pk=record.pk as url_ %}
{% label_link url_ 'Add to Features' %}
{% else %}
{% url 'remove_feature' pk=record.pk as url_ %}
{% label_link url_ 'Remove From Features' %}
{% endif %}
""", attrs=dict(cell={'class': 'span1'}))