Django Middleware- 'AnonymousUser'개체는 반복 할 수 없습니다.

브라이언

컨텍스트 / 코드 관련 질문 : 내 Django 미들웨어가 제대로 작동하지 않습니다.

그래서 방금 도움을 받고 이것과 관련된 다른 질문에 대한 답변을 얻었지만 코드를 추가 한 후 로그인하지 않은 사용자가 사이트를 볼 때마다 아래 오류가 표시되므로 도움을 주시면 감사하겠습니다. 감사

오류: 'AnonymousUser' object is not iterable

C:\Users\...\account\banning\middleware.py in __call__
        if(UserBanning.objects.filter(ban=True, user=request.user)): …

middleware.py :

from .models import UserBanning
from django.shortcuts import render, redirect


class BanManagement():
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        if(UserBanning.objects.filter(ban=True, user=request.user)):
            context = {
                'banned': banned[0],
            }
            return render(request, "account/banned.html", context)
        else:
            response = self.get_response(request)
            return response

models.py

from django.db import models
from django.contrib.auth.models import User
from django.conf import settings

class UserBanning(models.Model):
    user = models.ForeignKey(User, verbose_name="Username", help_text="Choose Username", on_delete=models.CASCADE)
    ban = models.BooleanField(default=True, verbose_name="Ban", help_text="Users Bans")
    reason = models.CharField(max_length=500, blank=True)

    class Meta:
        verbose_name_plural = "User Banning"
        ordering = ('user',)

    def __str__(self):
        return f"{self.user}"
러 드라

다음과 같이 코드를 변경하십시오.

def __call__(self, request):

    if request.user.is_authenticated:
        banned = UserBanning.objects.filter(ban=True, user=request.user)
        if banned.exists():
            context = {
                'banned': banned[0],
            }
            return render(request, "account/banned.html", context)

    response = self.get_response(request)
    return response

설명

사용자 여부를 확인하고 있습니다 is_authenticated. 인증되지 않은 경우 금지 여부를 확인할 필요가 없습니다. 그런 다음 UserBanning모델을 통해 사용자가 있는지 확인합니다 exists().

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Django 'logout'TypeError : 'AnonymousUser'개체는 반복 할 수 없습니다.

분류에서Dev

/ register / 'AnonymousUser'개체의 TypeError는 반복 할 수 없습니다.

분류에서Dev

Django 컨텍스트 프로세서 'AnonymousUser'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'UniqueConstraint'개체는 Django에서 반복 할 수 없습니다.

분류에서Dev

Django 'bool'개체는 모델 저장시 반복 할 수 없습니다.

분류에서Dev

Django TypeError : "User"개체는 직렬화 중에 반복 할 수 없습니다.

분류에서Dev

렌더링하는 동안 TypeError 발생 : 'int'개체는 django 템플릿에서 반복 할 수 없습니다.

분류에서Dev

TypeError : 'numpy.bool_'개체는 반복 할 수 없습니다.

분류에서Dev

'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

to_representation 오류 : 'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

to_representation 오류 : 'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

'builtin_function_or_method'개체는 반복 할 수 없습니다.

분류에서Dev

'builtin_function_or_method'개체는 반복 할 수 없습니다.

분류에서Dev

NoneType 개체는 반복 할 수 없습니다.

분류에서Dev

Python-TypeError : 'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : '외계인'개체는 반복 할 수 없습니다.

분류에서Dev

Django : TypeError : 'Like'객체는 반복 할 수 없습니다 (Ajax 요청).

분류에서Dev

Django는 개체에 변수를 할당 할 수 없습니다.

분류에서Dev

TypeError : 개체 상태의 변수는 반복 할 수 없습니다.

분류에서Dev

기수 정렬, "대기열"개체는 반복 할 수 없습니다.

분류에서Dev

다중 처리 : TypeError : 'int'개체는 반복 할 수 없습니다.

분류에서Dev

MSVC는 복사 할 수 있지만 이동할 수없는 개체를 반환 할 수 없습니다.

분류에서Dev

TypeError : 'int'개체는 반복 할 수 없습니까?

분류에서Dev

TypeError : 'int'개체는 반복 할 수 없습니까?

분류에서Dev

TypeError : "username '개체는 python3에서 반복 할 수 없습니다.

분류에서Dev

형식 오류 : Int 개체는 반복 할 수 없습니다. 오류 [For 루프]

분류에서Dev

/ flightdetails / airlines / 1 'Airlines'개체의 TypeError는 반복 할 수 없습니다.

분류에서Dev

'ListingGenerator'개체는 ASYNCPRAW를 사용하여 반복 할 수 없습니다.

분류에서Dev

TypeError : 'int'개체는 반복 할 수 없습니다. 파이썬 2.7

Related 관련 기사

  1. 1

    Django 'logout'TypeError : 'AnonymousUser'개체는 반복 할 수 없습니다.

  2. 2

    / register / 'AnonymousUser'개체의 TypeError는 반복 할 수 없습니다.

  3. 3

    Django 컨텍스트 프로세서 'AnonymousUser'개체는 반복 할 수 없습니다.

  4. 4

    TypeError : 'UniqueConstraint'개체는 Django에서 반복 할 수 없습니다.

  5. 5

    Django 'bool'개체는 모델 저장시 반복 할 수 없습니다.

  6. 6

    Django TypeError : "User"개체는 직렬화 중에 반복 할 수 없습니다.

  7. 7

    렌더링하는 동안 TypeError 발생 : 'int'개체는 django 템플릿에서 반복 할 수 없습니다.

  8. 8

    TypeError : 'numpy.bool_'개체는 반복 할 수 없습니다.

  9. 9

    'NoneType'개체는 반복 할 수 없습니다.

  10. 10

    to_representation 오류 : 'NoneType'개체는 반복 할 수 없습니다.

  11. 11

    to_representation 오류 : 'NoneType'개체는 반복 할 수 없습니다.

  12. 12

    'builtin_function_or_method'개체는 반복 할 수 없습니다.

  13. 13

    'builtin_function_or_method'개체는 반복 할 수 없습니다.

  14. 14

    NoneType 개체는 반복 할 수 없습니다.

  15. 15

    Python-TypeError : 'NoneType'개체는 반복 할 수 없습니다.

  16. 16

    TypeError : '외계인'개체는 반복 할 수 없습니다.

  17. 17

    Django : TypeError : 'Like'객체는 반복 할 수 없습니다 (Ajax 요청).

  18. 18

    Django는 개체에 변수를 할당 할 수 없습니다.

  19. 19

    TypeError : 개체 상태의 변수는 반복 할 수 없습니다.

  20. 20

    기수 정렬, "대기열"개체는 반복 할 수 없습니다.

  21. 21

    다중 처리 : TypeError : 'int'개체는 반복 할 수 없습니다.

  22. 22

    MSVC는 복사 할 수 있지만 이동할 수없는 개체를 반환 할 수 없습니다.

  23. 23

    TypeError : 'int'개체는 반복 할 수 없습니까?

  24. 24

    TypeError : 'int'개체는 반복 할 수 없습니까?

  25. 25

    TypeError : "username '개체는 python3에서 반복 할 수 없습니다.

  26. 26

    형식 오류 : Int 개체는 반복 할 수 없습니다. 오류 [For 루프]

  27. 27

    / flightdetails / airlines / 1 'Airlines'개체의 TypeError는 반복 할 수 없습니다.

  28. 28

    'ListingGenerator'개체는 ASYNCPRAW를 사용하여 반복 할 수 없습니다.

  29. 29

    TypeError : 'int'개체는 반복 할 수 없습니다. 파이썬 2.7

뜨겁다태그

보관