Добавить и принять запрос на добавление в друзья - PullRequest
0 голосов
/ 03 марта 2020

Я работаю на сайте знакомств с Django, я следовал учебному пособию в Интернете, но в моем коде есть проблема, касающаяся того, как я могу принять запрос друга / выполнить ответ от других пользователей. Например, если Джон отправит запрос на добавление в друзья / подписку Полу, когда я войду в учетную запись Пола и нажму на профиль Джона, я смогу увидеть «принять запрос / подписаться назад» в профиле Джона. Но то, что я закодировал, - это обратное, согласно моему коду, когда Джон отправляет Полу запрос на дружбу / подписку, когда я захожу в учетную запись Пола и нажимаю на профиль Джона, я не вижу «принять запрос / подписаться назад», скорее я см. «принять запрос / следовать назад» в профиле Джона вместо профиля Пола. Как мне связать «принять запрос / следовать назад» с профилем пользователя, которому я отправил другу / выполнить запрос. Пожалуйста, дайте мне знать, что мне не хватает в моем коде.

class Follow(models.Model):
    users = models.ManyToManyField(User, blank=True)
    follower = models.ForeignKey(User,on_delete=models.CASCADE,related_name='owner',blank=True,null=True)
    date = models.DateTimeField(auto_now_add=True, null= True)


@login_required
def profile(request, username):
    profile_img = Profile.objects.filter(user__username=username)
    follow, created = Follow.objects.get_or_create(follower=request.user) #request.user
    follows = follow.users.all()

    rec_friend_requests = Follow.objects.filter(users__username=username)

    context = {
        'profile_img': profile_img,
        'follows': follows,
        'rec_friend_requests': rec_friend_requests,
    }
    return render(request,'profile.html', context)

@login_required
def follow(request, operation, pk):
    follower = User.objects.get(pk=pk)
    if operation == 'add':
        Follow.make_follower(request.user, follower)

    elif operation == 'remove':
        Follow.lose_follower(request.user, follower)

    if operation == 'accept':
        Follow.is_following(request.user, follower)
    return redirect('site:home')


 {% for hideeditbtn in profile_img %}

 {% for r_request in rec_friend_requests %}
 <p><a href="">{{ r_request.follower.username }}</a></p>
 <small><a class="btn btn-primary" href="{% url 'site:accept' r_request.id %}">Accept</a></small>
 <small><a class="btn btn-warning" href="{% url 'site:ignore' r_request.id %}">Ignore</a></small>
 {% endfor %}

 <div class="row mt-1" id="profile-followbtn">
 {% if not hideeditbtn.user in follows %}

 <div class="col-5 px-2">
 <a href="{% url 'site:follow' operation='add' pk=hideeditbtn.user.pk %}">
 <button type="button" class="btn btn-primary btn-lg btn-block  text-capitalize font-weight-bold" style="margin-left:0px;padding:6px;">Follow</button>
 </a>
 </div>
 <div class="col-5 px-2">
 <a href="">
 <button type="button" class="btn btn-lg btn-block text-capitalize dark-grey-text font-weight-bold" style="margin-left:0px;padding:6px;">Message</button>
 </a>
 </div> 
 {% else %} 

  <div class="col-5 px-2">
  <a href="{% url 'site:follow' operation='remove' pk=hideeditbtn.user.pk %}">
  <button type="button" class="btn btn-lg btn-block border border-light text-capitalize dark-grey-text font-weight-bold" style="margin-left:0px;padding:6px;">Following</button>
  </a>
  </div>
  <div class="col-5 px-2">
  <a href="">
  <button type="button" class="btn btn-lg btn-block border border-light text-capitalize dark-grey-text font-weight-bold" style="margin-left:0px;padding:6px;">Message</button>
  </a>
  </div>   
  </div>
  {% endif %}      
  {% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...