Как обновить кнопку на AJAX Отправить? - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть кнопка следования, которая позволяет пользователю следить за объектом или отменять его. Значение кнопки изменяется в зависимости от того, подписан пользователь или не подписан. Как обновить кнопку после события нажатия, не обновляя всю страницу?

HTML Шаблон

{% if trending_store in store_connection_user %}
    <a href="" value="add" data-catid="{{ trending_store.pk }}" class="followBtn btn btn-primary" action_type="remove">Remove Store</a>
{% else %}
    <a href="" value="add" data-catid="{{ trending_store.pk }}" class="followBtn btn btn-primary" action_type="add">Follow Store</a>
{% endif %}

jQuery

{% block jquery %}
  $(".followBtn").click(function (event) {
    event.preventDefault();

    var this_ = $(this);
    var storepk = this_.attr('data-catid');
    var action_type = this_.attr('action_type');

    $.ajax({
      type: "POST",
      url: "{% url 'portal:store_change_connections' %}",
      data: {
        store_pk: storepk,
        action: action_type,
        csrfmiddlewaretoken: '{{ csrf_token }}',
      },
      success: function (data) {
        $('.followBtn')

        console.log(data)
      }
    });
  });
{% endblock jquery %}

views.py

def StoreChangeConnectionsAjax(request):
    if request.method == 'POST':
        store_pk = request.POST['store_pk']
        action = request.POST['action']

        print(store_pk)
        print(action)

        if action == 'add':
            store_connection_ajax = portal_models.Store.objects.get(pk=store_pk)
            portal_models.FollowStore.add_connection(request.user, store_connection_ajax)
            return HttpResponse('Success!') 

        if action == 'remove':
            store_connection_ajax = portal_models.Store.objects.get(pk=store_pk)
            portal_models.FollowStore.remove_connection(request.user, store_connection_ajax)
            return HttpResponse('Success!') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...