Как определить динамическое количество столбцов в django-datatables-view

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

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

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

Другие вопросы по тегам