【问题标题】:How to use django url in ajax?如何在ajax中使用django url?
【发布时间】: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"),

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

【问题讨论】:

    标签: python django ajax django-templates


    【解决方案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- 属性的东西。

      【讨论】:

        猜你喜欢
        • 2021-01-04
        • 1970-01-01
        • 2018-08-28
        • 2019-01-04
        • 2012-10-31
        • 2020-03-08
        • 1970-01-01
        • 2014-02-17
        • 2020-03-22
        相关资源
        最近更新 更多