在jquery

时间:2019-12-05 15:50:40

标签: jquery django django-views

我已经阅读了与该主题相关的2篇帖子。无法使它们适用于我的情况:

经过很多努力,我已经解决了一些问题,但是我没有从jquery代码中正确指示视图函数的URL。我以为可以使用在urls.py中创建路径时使用的名称来做到这一点,但是它不起作用。

然后,您应该如何将url写入views.py文件中的函数?

我的jquery文件位于/ static / js内,它像这样:

$(document).ready(function(){
$('input[type="radio"]').click(function(){
        var valor = $(this).val();
        $.post('../home', {valor:valor}, function(data){

       });


       });

});

并且视图无法捕捉到

def home(request):
    topic = request.POST.get('valor')
    print(topic)

2 个答案:

答案 0 :(得分:1)

在您的jquery代码中使用JSON.stringify

$('input[type="radio"]').click(function(){
    var valor = $(this).val();
    $.post('../home', JSON.stringify({valor:valor}), function(data){

   });

   });
});

,您认为使用此代码:

def home(request):
    topic = request.data.get('valor')
    print(topic)

答案 1 :(得分:-1)

  1. 您正在使用ajax,因此django视图不应返回render。检查如何在Convert JavaScript string in dot notation into an object reference

  2. 中呈现响应
  3. 从渲染到字符串获取的html,使用return JsonReponse()将其作为json作为数据返回。永远记住要提供状态。

  4. 一旦在ajax帖子中接收回数据,则将其附加div。这将显示为普通视图模板,并使用页面中现有的CSS进行格式化。