django-tables2: добавление нового пользовательского столбца, не найденного в модели - PullRequest
0 голосов
/ 23 мая 2018

У меня есть следующая таблица:

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?

1 Ответ

0 голосов
/ 23 мая 2018

Вы должны передать аргумент ключевого слова empty_values=() в столбец, чтобы заключить в кавычки документы :

методы визуализации вызываются только в том случае, если определено значение для ячейкибыть не пустым значением.Когда значение равно 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

соответствующие документы

...