我正在尝试在ListView中创建一个表单,该表单会过帐到ListView并按POSTed属性进行过滤。
这是在Django 2.1项目中。
我尝试将self和request步枪传递给post函数,但是我收到以下异常 例如
def post(self, request):
导致TypeError异常:
post() takes 1 positional argument but 2 were given
如果我尝试通过删除参数之一来解决错误,以便仅将self传递给post()def post(self)
函数,则会收到以下TypeError异常:
post() takes 1 positional argument but 2 were given
尽管只有自我已经过去。我尝试仅传递请求,结果相同。
许多在线示例
def post(self, request, *args, **kwargs)
这导致以下明显例外:
too many values to unpack (expected 2)
删除所有参数会导致TypeError:
post() takes 0 positional arguments but 2 were given
Thing_dashboard(ListView)类: '''所有已处理的订单'''
template_name = 'thing/orders_dashboard.html'
paginate_by = 25
def post(self, request):
queryset = Order.objects.all().order_by('-ordered_date')
rejected = self.request.POST.get('rejected')
if rejected == 'False':
queryset = Order.objects.filter(state='rejected')
return queryset
return queryset
def get_queryset(self):
queryset = Order.objects.all().order_by('-ordered_date')
return queryset
我希望能够在基于简单函数的视图中引用self.request.POST.get(),然后处理逻辑以返回我尝试实现的过滤查询集。
答案 0 :(得分:0)
首先,删除post方法,然后尝试:
template_name = 'thing/orders_dashboard.html'
paginate_by = 25
def get_queryset(self):
rejected = self.request.POST.get('rejected') or None
if rejected:
return Order.objects.filter(state='rejected').order_by('-ordered_date')
return Order.objects.all().order_by('-ordered_date')