如何从django中的另一个URL获取json响应?

时间:2016-09-12 16:25:01

标签: jquery python json ajax django

我在django中创建了2个视图,即

   def next_qn_url(request):
        test_result1 = 'questionansewrchoice'
         return JsonResponse({'test_result':test_result1})
    def last_qn_url(request):
         test_result2 = 'questionansewrchoice'
         return JsonResponse({'test_result':test_result2})
   def test(request):
         test = 'testchoice'
         return render(request, 'ap/test.html', {})

我也在urls.py

中注册了这些观点
urlpatterns = [
    url(r'^test/$', views.test, name='test'),
    url(r'^next_qn_url/$', views.test, name='next_qn_url'),
    url(r'^last_qn_url/$', views.test, name='last_qn_url'),
    url(r'.*', views.home, name='home'),    
]

我将测试页面中的数据发送到其他2个视图,并尝试获取他们的json响应并在jquery getJSON函数的帮助下更新我的测试页面。

   $.getJSON('/next_qn_url/', selected_qn_ans, function(data) {

           console.log(data);

                });

$.getJSON('/last_qn_url/', selected_qn_ans, function(data) {

           console.log(data);

                });

我只是在这里给出一份草稿。但是在jsonresponse中,我一次又一次地获得整个测试页面的所有HTML但不是json。这不是正确的方法或指导我完成这个过程。感谢

1 个答案:

答案 0 :(得分:2)

我不确定你的网址是否正确。前3点指向相同的views.test Django视图,这可以解释为什么你连续得到测试html。根据我的理解,在getJSON函数中调用url的名称与调用碰巧具有“类似名称”的视图不同。 getJSON中的第一个参数是url名称,而不是视图名称。

我会尝试以下修改,看看第二个&第三个网址:

urlpatterns = [
    url(r'^test/$', views.test, name='test'),
    url(r'^next_qn_url/$', views.next_qn_url, name='next_qn_url'),
    url(r'^last_qn_url/$', views.last_qn_url, name='last_qn_url'),
    url(r'.*', views.home, name='home'),    
]

希望它有效。