Цикл Django for loop не отображается
Я столкнулся с проблемой отображения кнопки внутри тега for-loop. Когда я удаляю теги {% for user in users %}
из send_friend.html
, кнопка отображается, когда я добавляю ее снова, она исчезает.
models.py
class Friend_Request(models.Model):
from_user = models.ForeignKey(
User, related_name='from_user', on_delete=models.CASCADE)
to_user = models.ForeignKey(
User, related_name='to_user', on_delete=models.CASCADE)
views.py
def send_friend_request(request, pk):
from_user = request.user
to_user = User.objects.get(id=pk)
friend_request, created = Friend_Request.objects.get_or_create(
from_user=from_user, to_user=to_user)
if created:
return HttpResponse('friend request sent')
else:
return HttpResponse('friend request already sent')
send_friend.html
<ul>
{% for user in allusers %}
<h1>
{% if not user.is_superuser %}
<p></p>
{% if user not in request.user.friends.all and user != request.user %}
<a href="/send-friend-request/{{user.id}}" class="btn btn--main btn--pill"
>Send Friend Requst</a>
{% elif user in request.user.friends.all %}
<p>You are friends!</p>
{% endif %}
<p></p>
{% endif %}
</h1>
{% endfor %}
</ul>
Вам необходимо правильно передать контекст в представление. В примере:
def your_view(request):
...
context = {"allusers": User.objects.all()}
return render(..., context=context)
Спасибо за ваши ответы, я обновил представление, как показано ниже, но оно все еще не работает:
@login_required(login_url='login')
def send_friend_request(request, pk):
from_user = request.user
to_user = User.objects.get(id=pk)
allusers = User.objects.all()
context = {
'allusers': allusers
}
friend_request, created = Friend_Request.objects.get_or_create(
from_user=from_user, to_user=to_user)
if created:
return render(request, context)
else:
return HttpResponse('friend request already sent')
Следующий код также не приводит к появлению кнопки:
@login_required(login_url='login')
def send_friend_request(request, pk):
from_user = request.user
to_user = User.objects.get(id=pk)
allusers = User.objects.all()
context = {
'allusers': allusers
}
friend_request, created = Friend_Request.objects.get_or_create(
from_user=from_user, to_user=to_user)
return render(request, context)