截至目前,当前代码在js警报中呈现Job.objects.all()
是预期的。但我希望能够将var jobnum
传递到我的视图中并根据此过滤Job.objects.all。在json中有jobnum键和它们的值。我希望能够将与jobnum相关的所有数据提取到ajax请求中。
我尝试过像a = Job.objects.GET(jobnum=jobnum)
这样的事情
和a = Job.objects.GET(jobnum=request)
以及我不记得的许多其他事情。我得到的最接近的是我在下面显示的内容:
我的观点:
def api(request):
a = Job.objects.all()
data = serializers.serialize('json', a)
data = json.loads(data)
if request.is_ajax():
return HttpResponse(data)
else:
data = serializers.serialize('json', a)
return HttpResponse(data)
我的jquery:
$('.test').click(function(){
var jobnum = $(this).data('jobnum');
console.log(jobnum)
$.ajax({
url: "api",
type: 'get', //this is the default though, you don't actually need to always mention it
data: {'jobnum':jobnum},
success: function(data) {
alert(data);
},
failure: function(data) {
alert('Got an error dude');
}
});
});
答案 0 :(得分:1)
要获取jobnum中的所有作业,您必须使用.filter,因为.get只返回一个对象
所以在你的代码中添加
jobnum = request.GET.get('jobnum')
job_list = Job.objects.filter(jobnum=jobnum)
将您需要执行的数据序列化,如下所示:
job_json = job_list.values()
因此您的观点将如下所示:
def api(request):
jobnum = request.GET.get('jobnum')
job_list = Job.objects.filter(jobnum=jobnum)
json_data = job_list.values()
return HttpResponse(json_data)