我有一个HTML表单,正在通过get方法提交给django视图。目的是从用户表中打印用户列表,但仅打印以表格形式选择的字段,即用户将选择他们要打印的列。
在我的视图中,我检查是否选择了给定的列,然后将其附加到列表中。然后,我将此列表传递给django的queryset.values()方法。但是,它不接受列表对象作为参数。
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)
我如何有条件地构建* fields值,因为文档https://docs.djangoproject.com/en/2.1/ref/models/querysets/#values对此没有解释?