django-tables2:添加模型中找不到的新自定义列

时间:2018-05-22 23:20:25

标签: django django-tables2

我有下表:

class TaskTable(tables.Table):

    def render_foo(self):
        raise Exception()

    class Meta:
        model = Task
        fields = ['foo']

以下型号:

class Task(models.Model):
    priority = models.PositiveIntegerField()
    title = models.CharField(max_length=1024)
    content = models.TextField(null=True, blank=True)

根据文档,如果将render_foo视为空值,则不会执行foo

我的要求是在模型中找不到foo。如何实施专栏dist

1 个答案:

答案 0 :(得分:0)

您必须将empty_values=()关键字参数传递给该列,引用the docs

  仅当确定单元格的值不是空值时,才会调用

渲染方法。当值为Column.empty_values时,将呈现默认值(跳过Column.render和Table.render_FOO)。

在您的情况下,'值'对于您的不存在列,None,如果该值在empty_values中,则会默认显示默认值(-)。

所以在代码中,它看起来像这样:

class TaskTable(tables.Table):
    foo = tables.Column(empty_values=())

    def render_foo(self):
        raise Exception()

    class Meta:
        model = Task

relevant docs