当前位置: 首页 > 面试题库 >

通过jQuery ajax调用将值列表传递给Django视图

罗韬
2023-03-14
问题内容

我试图通过jQuery
ajax调用将数值列表(id)从一个网页传递到另一个网页。我不知道如何传递和读取列表中的所有值。我可以成功发布和读取1个值,但不能读取多个值。这是我到目前为止的内容:

jQuery的:

var postUrl = "http://localhost:8000/ingredients/";
$('li').click(function(){
    values = [1, 2];
    $.ajax({
        url: postUrl,
        type: 'POST',
        data: {'terid': values},
        traditional: true,
        dataType: 'html',
        success: function(result){
            $('#ingredients').append(result);
            }
    });       
});

/成分/视图:

def ingredients(request):
    if request.is_ajax():
        ourid = request.POST.get('terid', False)
        ingredients = Ingredience.objects.filter(food__id__in=ourid)
        t = get_template('ingredients.html')
        html = t.render(Context({'ingredients': ingredients,}))
        return HttpResponse(html)
    else:
        html = '<p>This is not ajax</p>'      
        return HttpResponse(html)

使用Firebug,我可以看到POST包含两个ID,但格式可能错误(terid = 1&terid = 2)。因此,我的成分视图仅拾取terid =
2。我究竟做错了什么?

编辑: 为澄清起见,我需要ourid变量将值[1、2]传递到成分视图中的过滤器


问题答案:

我找到了解决原始问题的方法。将其发布在此处作为答案,希望对您有所帮助。

jQuery的:

var postUrl = "http://localhost:8000/ingredients/";
$('li').click(function(){
    values = [1, 2];
    var jsonText = JSON.stringify(values);
    $.ajax({
        url: postUrl,
        type: 'POST',
        data: jsonText,
        traditional: true,
        dataType: 'html',
        success: function(result){
            $('#ingredients').append(result);
            }
    });       
});

/成分/视图:

def ingredients(request):
    if request.is_ajax():
        ourid = json.loads(request.raw_post_data)
        ingredients = Ingredience.objects.filter(food__id__in=ourid)
        t = get_template('ingredients.html')
        html = t.render(Context({'ingredients': ingredients,}))
        return HttpResponse(html)
    else:
        html = '<p>This is not ajax</p>'      
        return HttpResponse(html)


 类似资料:
  • 问题内容: 我正在使用Django和Apache来提供网页。我的JavaScript代码当前包含一个数据对象,该数据对象的值将基于用户从选项菜单中的选择而显示在各种HTML小部件中。我想从Python字典中导出这些数据。我想我知道如何将JavaScript代码嵌入HTML中,但是如何(即时)将数据对象嵌入该脚本中,以便脚本的功能可以使用它? 换句话说,我想从Python字典中创建一个JavaScr

  • 问题内容: 我想按值将列表传递给函数。默认情况下,列表和其他复杂对象通过引用传递给函数。这是一些目标: 可以写得短些吗?换句话说,我不想更改 ad 。 问题答案: 您可以使用,但是对于包含列表(或其他可变对象)的列表,您应该使用: 等价于或,并返回列表的浅表副本。 何时使用:

  • 在模板中,我有一些这样的代码: 这是“脚本”部分: 我想为选定的学生添加一些新课程,为了做到这一点,我创建了获取课程ID号和课程分数的表单。首先,当我填写表单时,当我点击“添加”按钮时,javascript创建表格,我可以添加许多课程,然后当我应该提交它以在视图部分执行其他步骤并将所有课程保存在数据库中时。我有一些问题,如果有人帮助我,我很高兴。 1)如何将“stock”数组(javaScript

  • 因此,在这里我将basePackages硬编码为“com.example”。这不是我想要的。我想通过命令行参数从终端运行应用程序时接收包名。有没有一种方法可以将命令行参数传递给应用程序,并使用我在BasePackages中接收到的参数?提前致谢

  • 问题内容: 如何将参数传递给表单? 根据以下答案进行编辑: 问题答案: 你应该定义表单的方法,如下所示: 没有意义。创建表单后,必须将属性添加到窗口小部件。尝试这样的事情:

  • 我正试图添加一个新列到spark dataframe中,如下所示: 我试图将上面的列值列表作为新列传递给dataframe,并尝试对该新列执行sha2,并尝试执行varchar(64)。