Как перехватить нажатие кнопки во вьюхе или почему вызывается функция, привязанная к кнопке, при обновлении страницы? (Django)
У меня на сайте надо реализовать публикацию или скрытие поста. Для этого я написал кнопку, которая меняет значение базы данных is_published на 0 или 1 при нажатии, однако значение is_published также меняется при обновлении страницы. Вот views.py:
def profile(request):
user_now = User.objects.get(username=request.user.username)
data = Bloger.objects.get(pk=user_now.channel_id_id)
return render(request, 'users/profile.html', {'on_site': data,})
Это страница html:
{% if on_site.is_published == 0 %}
<button><a href="{{ on_site.change_published_on_1 }}" class="callback">Опубликовать</a></button>
<p>{{ on_site.is_published }}</p>
{% else %}
<button><a href="{{ on_site.change_published_on_0 }}" class="callback">Скрыть</a></button>
<p>{{ on_site.is_published }}</p>
{% endif %}
class Bloger(models.Model):
is_published = models.IntegerField(default=0)
def change_published_on_0(self):
self.is_published = 0
self.save()
return reverse('users:profile')
def change_published_on_1(self):
self.is_published = 1
self.save()
return reverse('users:profile')
Вообще кнопка работает правильно - она меняет значение is_published с 0 на 1 и обратно, но также значение is_published меняется при обычном обновлении страницы. Что может быть не так? Я думаю, что это может происходить из-за того, что я прописал логику обновления is_published в models, а не во views, но я не понимаю как перехватить сигнал, что пользователь нажал на кнопку во views.