У меня есть кнопка следования, которая позволяет пользователю следить за объектом или отменять его. Значение кнопки изменяется в зависимости от того, подписан пользователь или не подписан. Как обновить кнопку после события нажатия, не обновляя всю страницу?
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!')