Изменить тип столбца в django-tables2 - PullRequest
0 голосов
/ 18 декабря 2018

Заполнить таблицу

mydata.append({
            'bool_access': True,
            'path': path
        })
table = mytable(data=mydata)

----> render table

Таблица

class mytable(tables.Table):

    path = tables.Column(verbose_name='My path')

    # path = tables.LinkColumn('page_web', args=[A('path')],verbose_name='My path')

    bool_access = ""

    class Meta:
        attrs = {'class': 'table table-bordered table-striped table-condensed'}
        sequence = ('path')

Требуется

Я хочу, чтобы при добавлении строки в мои данные с bool_access в "True"что тип столбца для path равен tables.LinkColumn, а если bool_access в значении False, тип столбца равен tables.Column.

Заранее благодарим за любую помощь.

1 Ответ

0 голосов
/ 20 декабря 2018

Есть несколько способов приблизиться к этому, но я думаю, что самый простой способ - использовать TemplateColumn:

class MyTable(tables.Table):

    path = tables.TemplateColumn(
        verbose_name='My path', 
        template_code="""{% if record.bool_access %}<a href="{% url "page_web" record.path %}">{{ record.path }}</a>{% else %}{{ record.path }}{% endif %}""")

    class Meta:
        attrs = {'class': 'table table-bordered table-striped table-condensed'}
        sequence = ('path')
...