как вызвать функцию django views.py без обновления страницы? - PullRequest
0 голосов
/ 22 июня 2019

Я пишу модель, которую пользователь может подписывать / отписывать друг от друга, но когда пользователь нажимает на кнопку, чтобы следовать или отменить подписку после процесса, страница будет обновлена. Мне нужен способ выполнить это действие без обновления страницы и изменить текст на этой странице.

моя модель:

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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...