Python 从浏览器查询json http响应

Python 从浏览器查询json http响应,python,django,json,query-string,Python,Django,Json,Query String,我有一个用Django编写的视图,它返回JSON响应,如: [{"pk": 3222, "model": "test.test", "fields": {"f1:f1, f3:f2"}}......etc] 返回此视图的URL为:127.0.0.1:8000/someview/modelname/all 然而,当我在浏览器上点击这个按钮时,127.0.0.1:8000/someview/modelname/all?pk=3222 我没有得到过滤后的结果。我如何做到这一点?或者我对URL

我有一个用Django编写的视图,它返回JSON响应,如:

[{"pk": 3222, "model": "test.test", "fields": {"f1:f1, f3:f2"}}......etc]    
返回此视图的URL为:
127.0.0.1:8000/someview/modelname/all

然而,当我在浏览器上点击这个按钮时,
127.0.0.1:8000/someview/modelname/all?pk=3222

我没有得到过滤后的结果。我如何做到这一点?或者我对URL中的查询的理解是错误的

更新:

我认为:

obj = SomeModel.objects.all()
return HttpResponse(serializers.serialize('json', [obj,]))

您只需
GET
获取
pk
参数,并且使用
pk
可以
获取记录:

if request.GET['pk']:
   p_k = int(request.GET['pk'])
   obj = Somemodel.objects.get(pk=p_k)
else:
   obj = SomeModel.objects.all()

这是因为您根本没有在代码中进行任何过滤。您的第一行说“给我所有的SomeModel对象”,第二行说“这是所有SomeModel对象作为JSON的HTTP响应。”

假设不使用基于类的视图,可以执行以下操作:

from django.shortcuts import get_object_or_404

def SomeView(request):
    obj = SomeModel.objects.all()
    if request.GET.get('pk') is not None:
        obj = get_object_or_404(SomeModel, pk=request.GET.get('pk'))
    return HttpResponse(serializers.serialize('json', obj), content_type="application/json")

如果您不提供底层代码,我们如何知道发生了什么?您能为我们提供供您查看的代码吗?