2016-04-29 3 views
0

Я использую django-datatables-view (который используется вместе с плагинами данных jQuery). Для нормального использования, создать представление класса на основе, основанное на BaseDatatableView и определить там переменную столбцы:Как определить динамическое число столбцов в django-datatables-view

class MyCBV(LoginRequiredMixin, BaseDatatableView): 
    model = myModel 
    columns = ['my_model_column1','my_model_column2'] 
    ... 

Теперь я хотел бы создать переменную число столбцов, на основе параметра. Я могу получить доступ к параметру в функциях CBV , но, похоже, я не могу перезаписать переменную столбцов. Например, я попытался переписать переменную столбцов в функции get_context_data, но столбцы сохраняют свое исходное значение позже в функции render_column.

У кого-нибудь есть решение?

ответ

1

BaseDatatableView реализует DatatableMixin, который имеет метод get_columns с реализацией по умолчанию

def get_columns(self): 
    """ Returns the list of columns that are returned in the result set 
    """ 
    return self.columns 

Вы можете переопределить его и передать пользовательские столбцы здесь (с помощью параметра)

+0

Огромное спасибо Марко, он работает как очарование сейчас! – Patrick