为django-tables2设置空文本行为

时间:2014-07-28 06:23:58

标签: django-tables2

我的django表中的某些列恰好是空的,因此在那里呈现的文字是“无”#39;。 我希望看到一个空白区域。

django tables2关于这个主题有some documentation,但我完全不了解它。 我在哪里定义这个empty_text行为参数?试图在相关的班级元,但显然它没有效果。

1 个答案:

答案 0 :(得分:3)

您可以覆盖列定义中的默认值。

如果您没有明确声明您的列(例如,您让table2从您的模型中弄清楚它),那么您必须定义它以便为其设置选项。可以使用来自模型的数据来做到这一点..只要您定义的列名与模型字段名称匹配,它就会匹配它们。

class TableClass(tables.Table):
    mycolumn = tables.Column(default=' ')

如果您需要逐行动态计算出默认值,请定义列并传递empty_values = [],例如:

class TableClass(tables.Table):
    mycolumn = tables.Column(empty_values=[])

这告诉tables2它不应该认为任何值是空的' ..然后你可以为该列声明一个自定义渲染方法:

def render_mycolumn(value):
    # This is a very simplified example, you will have to work out your
    # own test for blankness, depending on your data.  And, if you are
    # returning html, you need to wrap it in mark_safe() 
    if not value:
        return 'Nobody Home'
    return value

请记住,如果tables2认为值为空,则不会调用render_方法,因此您还必须设置empty_values=[]

以下是tables2文档,其中介绍了自定义呈现方法的工作原理:http://django-tables2.readthedocs.org/en/latest/pages/custom-rendering.html?highlight=empty#table-render-foo-method