установить поведение пустого текста для django-tables2

Некоторые столбцы в моей таблице django оказались пустыми, и в результате отображаемый там текст был «Нет». Вместо этого я хотел бы видеть пустое место.

В djangotables2 есть некоторая документация по этому вопросу, но я не не понимаю этого полностью. Где я должен определить этот параметр поведения empty_text? Пробовал в соответствующей мете класса, но, видимо, это не имеет никакого эффекта.


person Ron Zukerman    schedule 28.07.2014    source источник


Ответы (1)


Вы можете переопределить значение по умолчанию в определении столбца.

Если вы явно не объявляете свой столбец (например, вы позволяете таблицам2 вычислять его из вашей модели), вам придется определить его, чтобы вы могли установить для него параметры. Это нормально делать с данными, поступающими из моделей... если имя столбца, которое вы определяете, соответствует имени поля модели, оно будет соответствовать им.

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

Если вам нужно динамически определить значение по умолчанию для каждой строки, определите свой столбец и передайте empty_values=[], например:

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

Это сообщает таблицам2, что они не должны считать какие-либо значения «пустыми». Затем вы можете объявить собственный метод рендеринга для этого столбца:

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

Имейте в виду, что методы render_ не вызываются, если table2 считает значение пустым, поэтому вы также должны установить empty_values=[].

Вот документация по таблицам2, в которой описывается, как работают пользовательские методы рендеринга: http://django-tables2.readthedocs.org/en/latest/pages/custom-rendering.html?highlight=empty#table-render-foo-method

person little_birdie    schedule 04.04.2016
comment
Обновите свой ответ ссылкой на документацию: django-tables2.readthedocs.org/en/latest/pages/ - person ruddra; 05.04.2016