【问题标题】:django-tables2: Adding a new custom column not found in modeldjango-tables2:添加模型中未找到的新自定义列
【发布时间】:2018-05-22 23:20:25
【问题描述】:

我有下表:

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 列?

【问题讨论】:

    标签: django django-tables2


    【解决方案1】:

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

    只有在确定单元格的值不是空值时才会调用渲染方法。当值为 inColumn.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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 2012-11-30
      • 2011-11-14
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多