Как передать параметры Ajax URL в Django? - PullRequest
0 голосов
/ 21 июня 2020

Я использовал 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'),

, но я не знаю, как передать list.slug или title_slug в приведенном выше URL-адресе с использованием Ajax:

$(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')

1 Ответ

0 голосов
/ 21 июня 2020

это ваше решение для передачи 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")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...