Как условно передать значения в queryset.values ​​в django - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть HTML-форма, которая передается в представление django через метод get. Цель состоит в том, чтобы напечатать список пользователей из таблицы пользователей, но распечатать только те поля, которые были выбраны в форме, то есть пользователь выберет столбцы, которые он хочет напечатать.

В моем представлении я проверяю, выбран ли данный столбец, затем добавляю его в список. Затем я передаю этот список методу queryset.values ​​() django. Однако он не принимает объект списка в качестве аргумента.

class PrintUsers(TemplateView):
    template_name = 'users/print-users.html'

    def get(self, request, *args, **kwargs):

        context = super(PrintUsers, self).get_context_data(**kwargs)

        users_list = Member.objects.all()

        values_list = []

        if self.request.GET.get('category') == 'on':
            values_list.append("category")

        if self.request.GET.get('email') == 'on':
            values_list.append("email")

        users_list.values(values_list) # this does not work

        context['users_list'] = users_list

        return render(request, self.template_name, context=context)

Как я могу условно построить * значения полей, поскольку документация не объясняет это здесь https://docs.djangoproject.com/en/2.1/ref/models/querysets/#values ??

...