繁体   English   中英

如何在Django中传递Ajax URL的参数?

[英]How to pass parameters of Ajax URL in Django?

我使用 Ajax 将项目添加到愿望清单:

<a href="{% url 'listing:wishlist' list.slug %}" id="wishlistbtn" data-slug='{{ list.slug }}'>Add to
wishlist</a>

url 看起来像:

path('wishlist/<slug:title_slug>/', wishlist, name='wishlist'),

但我不知道如何使用 Ajax 在 url 上方传递list.slugtitle_slug

$(document).on('click', '#wishlistbtn', function (e) {

    $.ajax({
        type: 'GET',
        url: "{% url 'listing:wishlist' %}",

        data: {
            title_slug: e.target.getAttribute('data-slug')
        },

        success: function (response) {
            alert('added to wishlist')
        }
    })
})

我的上述解决方案不起作用? 请帮我解决一下这个。 谢谢你。

编辑:添加视图

def wishlist(request):
    slug = request.GET.get('title_slug')
    obj = get_object_or_404(Listing, slug=slug)
    profile = Profile.objects.all().filter(user=request.user).first()
    profile.wishlist.add(obj)

    return HttpResponse('true')

这是您传递data-slug的解决方案吗?

$(document).on('click', '#wishlistbtn', function (e) {
            let el = $(this);
            $.ajax({
                type: 'GET',
                url: "{% url 'listing:wishlist' %}",
        
                data: {
                    title_slug: el.attr("data-slug"),
                },
        
                success: function (response) {
                    alert('added to wishlist')
                }
            })
        })

使用这条路径 -

path('wishlist', wishlist, name='wishlist'),

在您的观点中使用 slug - request.GET.get("title_slug")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM