【问题标题】:How to work with Django ajax "GET method"如何使用 Django ajax“GET 方法”
【发布时间】:2021-07-18 10:24:36
【问题描述】:

我想在 Django 中做一个 ajax GET 和 POST 方法。我的 post 方法运行良好,但 GET 方法却不行。请参阅下面的代码。

网址

path("getupdates/",views.getupdates,name="getupdates")

观看次数

def getupdates(request):
 if request.user.is_authenticated:
  if request.method == "GET":
   user_instance = User.objects.filter(username=request.user.username)[0]
   info = userinfo.objects.filter(username=user_instance.username)
   game = spinwheel.objects.filter(user=info[0])
   get_value= request.body
   data = {"info":info}
   print(data)
   return render(request,'spin.html',{"info":info})

Js-ajax

$.ajax({
 url: 'getupdates/',
 // datatype: 'json',
 data : data,
 type: 'GET',
 sucess: function(data) {
  console.log("refreshed!")
 }
});

我希望让 ajax GET 方法更新我的 HTML 的某些部分。

【问题讨论】:

  • 什么没有按预期工作?如果要更新模板的某些部分,则需要在成功函数中使用服务器返回的响应为 ajax 请求执行此操作。

标签: django ajax getmethod


【解决方案1】:

您可以检查 request.is_ajax()。 如果这是真的,那么您将返回 JsonResponce 和您的数据。 并将它们插入到您的 html 中,而无需重新加载整个页面。

例子

class ViewName(View):
    def get(self, requst):
        if requst.is_ajax():
            # your code

            return JsonResponse({'data': data})

    def post(self, requst):
        # your code

【讨论】: