如何在ajax中使用django url?

Posted

技术标签:

【中文标题】如何在ajax中使用django url?【英文标题】:How to use django url in ajax? 【发布时间】:2020-01-16 00:00:06 【问题描述】:

如何使用带有 id(或 pk)的 ajax 调用 django 函数。

 $.ajax(
    url: '% url  app:order_edit %',
    type:"POST",
        async:false,
    data: order:order, product:product, customer:customer, qty:qty, uom:uom, des:des,
      success:function(data)
      
);

views.py

def order_edit(request, obj_id):
    print("Obj Id is:",obj_id)
    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            #operations
            return render(request, 'order_view.html', 'form': form)
        return render(request, 'order_view.html', 'form': form)
    return render(request, 'order_view.html', )

urls.py

 path('orderedit/<int:obj_id>/', views.order_edit, name="order_edit"),

如何调用这个函数 任何人都帮我解决这个问题。提前致谢

【问题讨论】:

【参考方案1】:

您可以向 URL 模板标签添加参数,如下所示:

% url 'some-url-name' arg1=v1 arg2=v2 % - 关键字语法 % url 'some-url-name' v1 v2 % - 没有关键字

您将只有一个参数:

% url app:order_edit pk %(删除空格)

您需要将 pk 替换为您希望在 URL 中具有的值。您的其余代码不可见,因此我不知道您可以从哪里获得它。

有关 Django 文档的更多信息:https://docs.djangoproject.com/en/2.2/ref/templates/builtins/#url

【讨论】:

【参考方案2】:

如果你的 JS 是内联的,你只能在 javascript 中使用 Django 模板标签。有关信息,请参阅this 答案。

如果您这样做,那么 Tomislav 的回答就足够了。否则,您还需要考虑从 HTML 中提取 URL。你可以使用 JS 选择器,或者类似 data- 属性的东西。

【讨论】:

以上是关于如何在ajax中使用django url?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 模板中使用 Ajax?

如何在 django 中使用 ajax 更新绘图图

如何在 django 中通过 AJAX 请求传递数据?

如何在 Django 中使用 AJAX 显示 rest api?

如何正确使用 AJAX 和 DJANGO?

如何在Django使用ajax的POST