在Django中使用multipe参数处理get请求的最佳实践

时间:2019-10-21 16:25:47

标签: django-rest-framework

我正在尝试从表中筛选并发送回行,以筛选任意数量的键值对。我该怎么办?

我只能对我知道的键执行此操作,而且我想我必须为每个键排列编写代码。有通用的方法可以处理任意数量的键吗?

@api_view(['POST','DELETE','PUT','GET'])                                                            
def statementLinesRahul(request):
    ct_id = request.data.get('ct_id','')
    ztype = request.data.get('type','')
    approve = request.data.get('approve','')
    credited_amt = request.data.get('credited_amt','')
    zid = request.data.get('id','')    
    if request.method == 'GET':
        #Only gets require the request.GET instead of request.data.  I don't know why.
        goods = Rahulscalcs.objects.filter(opp_name = request.GET.get('opp_name',''), product = request.GET.get('product','')).order_by('doc_date')
        response = RahulscalcsSerializer(goods,many=True)
        response =  json.dumps(response.data)
        return JsonResponse(response,safe=False)

这可行,但是如果以后我只想过滤opp_name,就不得不编写另一个某种处理程序。我敢肯定,无论是模型还是序列化器都已经弄清楚了。另外,我发回线路的方式也不对。在客户端上,我正在将字符串解析回一个对象。真的有必要吗?

0 个答案:

没有答案