Django Handle Анонимный пользователь в проверке статуса - PullRequest
0 голосов
/ 04 мая 2019

Я хочу, чтобы эта функция работала с AnonymousUser, но не знаю, кого правильно фильтровать для AnonymousUser в строке состояния:

def post_sell_multiple_detail(request, pk):
    post = get_object_or_404(Post_Sell_Multiple, pk=pk)
    list_comments = Post_Sell_Multiple_Comment.objects.get_queryset().filter(post_id=pk).order_by('-pk')
    status = Post_Paid_Sell_Multiple.objects.filter(user=request.user, post_id=pk, status=1).count()
    paginator = Paginator(list_comments, 10)
    page = request.GET.get('commentpage')
    comments = paginator.get_page(page)
    return render(request, 'app/Post_Sell_Multiple/post_sell_multiple_detail.html',
                  {'post': post,
                   'comments': comments,
                   'status': status
                   })

С пользователем, я создал его нормально, но не с AnonymousUser.В настоящее время я получаю следующую ошибку здесь:

TypeError at / post / 1 / sell_multiple

Объект 'AnonymousUser' не повторяется

С уважением

1 Ответ

0 голосов
/ 04 мая 2019

Вы можете использовать user.is_authenticated, чтобы проверить, вошел ли пользователь в систему, выполнить фильтрацию на основании этого:

post = get_object_or_404(Post_Sell_Multiple, pk=pk)
list_comments = Post_Sell_Multiple_Comment.objects.get_queryset().filter(post_id=pk).order_by('-pk')
<b>if request.user.is_authenticated:
     status = Post_Paid_Sell_Multiple.objects.filter(user=request.user, post_id=pk, status=1).count()
else:
     status =  Post_Paid_Sell_Multiple.objects.filter(post_id=pk, status=1).count()</b>
paginator = Paginator(list_comments, 10)
page = request.GET.get('commentpage')
comments = paginator.get_page(page)
return render(request, 'app/Post_Sell_Multiple/post_sell_multiple_detail.html',
                  {'post': post,
                   'comments': comments,
                   'status': status
                   })
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...