Я пишу модель, которую пользователь может подписывать / отписывать друг от друга, но когда пользователь нажимает на кнопку, чтобы следовать или отменить подписку после процесса, страница будет обновлена. Мне нужен способ выполнить это действие без обновления страницы и изменить текст на этой странице.
моя модель:
class Follower(models.Model):
follower = models.ForeignKey(User, related_name='followings',on_delete=models.CASCADE)
following = models.ForeignKey(User, related_name='followers',on_delete=models.CASCADE)
class Meta:
unique_together = ('follower', 'following')
def __str__(self):
return u'%s follows %s' % (self.follower, self.following)
мой взгляд:
def follow(request, own_user_id , follow_state):
"""
follow function
that add user who follow other user
own : user that have channel page
"""
own = CustomUser.objects.get(pk=own_user_id)
if follow_state == "followed":
action = request.user.followings.get(following=own)
action.delete()
return redirect(f'http://127.0.0.1:8000/{own.channel_name}')
else:
action = Follower.objects.create(follower=request.user, following=own)
action.save()
return redirect(f'http://127.0.0.1:8000/{own.channel_name}')
мой шаблон:
{% if request.user == user_own %}
<a href="{% url 'update-page' user.channel_name %}">
<button class="btn btn-light btn-flw">profile setting </button>
</a>
{% else %}
<a href="{% url 'follow-unfollow' user_own.id follow_state%}">
<button class="btn btn-light btn-flw">{{follow_state}}</button>
</a>
{% endif %}