django как и с использованием ajax - PullRequest
0 голосов
/ 16 января 2020

i newb ie с django, я пытаюсь сделать кнопку «Мне нравится» с ajax, но она не работает, ajax не отправляет данные на сервер, и я не знаю, почему, любой решение Django люди?

product / url.py:

 path('upvote/',views.upvote,name='upvote'),

views.py

@login_required(login_url='/accounts/signup')
def upvote(request):
    if request.method == 'POST':
        ans_id = request.GET['product_id']
    if ans_id:
        product = get_object_or_404(Product,pk=ans_id)
        if product:
          product.votes_total+=1
          product.save()
        # return redirect('/products/' + str(product_id))
          return render(request, 'products/home.html', {'likes': product.votes_total})

template / html

{% extends 'base.html' %}

{% block content%}
{% for product in product.all%}
<div class="container">
<div class="row pt-3">
    <div class="col-2" onclick="window.location='{% url 'detail' product.id%}';" style="cursor : pointer;">
     <img src="{{product.image.url}}" class="img-fluid " alt="">
    </div>
    <div class="col-6 " >
        <h1 class="textcolor">{{ product.title}}</h1>
        <p>{{product.summary}}</p>
    </div>
    <div class="col-4">
        <b id="like_count">{{ product.votes_total }}</b>
        <a  data-catid="{{ product_id}}"> <button class="btn btn-warning btn-dark  likes-button"  id="likes" <span class="oi oi-thumb-up" id="like"></span> Upvote {{product.votes_total}}</button></a>
    </div>
    </div>
</div>


{% endfor%}

{% endblock%}

ajax:

 $('.likes-button').click(function(){
      $.ajax({
               type: "POST",
               url: '/ajax/upvote/',
               data: {'slug': $(this).attr('name'), 'csrfmiddlewaretoken': '{{ csrf_token }}'},
               dataType: "json",
               success: function(response) {
                      alert(response.message);
                      alert('Company likes count is now ' + response.likes_count);
                },
                error: function(rs, e) {
                       alert(rs.responseText);
                }
          });
    })

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