繁体   English   中英

'AnonymousUser' object 在 Django 中没有属性 '_meta'

[英]'AnonymousUser' object has no attribute '_meta' in Django

我正在编写一个网站,当用户登录时,我收到此错误 - 'AnonymousUser' object 没有属性 '_meta'。 我如何解决它? 这是我的项目的结构:

│   db.sqlite3
│   manage.py
│
├───ithogwarts
│   │   asgi.py
│   │   settings.py
│   │   urls.py
│   │   wsgi.py
│   │   __init__.py
│   │
│   └───__pycache__
│
├───main
│   │   admin.py
│   │   apps.py
│   │   models.py
│   │   tests.py
│   │   urls.py
│   │   views.py
│   │   __init__.py
│   │
│   ├───migrations
│   │   │   __init__.py
│   │   │
│   │   └───__pycache__
│   │
│   ├───static
│   │   └───main
│   │       ├───css
│   │       │       footer.css
│   │       │       header.css
│   │       │       index.css
│   │       │
│   │       ├───img
│   │       │
│   │       └───js
│   │               script.js
│   │
│   ├───templates
│   │   └───main
│   │           index.html
│   │           layout.html
│   │           level_magic.html
│   │
│   └───__pycache__
│
├───templates
│   └───registration
└───users
    │   admin.py
    │   apps.py
    │   forms.py
    │   models.py
    │   tests.py
    │   urls.py
    │   utils.py
    │   views.py
    │   __init__.py
    │
    ├───migrations
    │   │   0001_initial.py
    │   │   __init__.py
    │   │
    │   └───__pycache__
    │
    ├───static
    │   └───users
    │       └───css
    │               login.css
    │               register.css
    │
    ├───templates
    │   └───users
    │           login.html
    │           register.html
    │
    └───__pycache__

forms.py:

class LoginUserForm(AuthenticationForm):
    email = forms.CharField(label="Почта", widget=forms.TextInput(attrs={'class': 'login__form-title form-control',
                                                                          'placeholder': 'введите вашу почту'}))
    password = forms.CharField(label="Пароль", widget=forms.PasswordInput(attrs={'class': 'login__form-title form-control',
                                                                          'placeholder': 'введите пароль'}))

    def __init__(self, *args, **kwargs):
        super(LoginUserForm, self).__init__(*args, **kwargs)
        self.fields.pop('username')

视图.py:

class LoginUser(LoginView):
    form_class = LoginUserForm
    template_name = 'users/login.html'

错误:

Traceback (most recent call last):
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\views\generic\base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\views\decorators\debug.py", line 89, in sensitive_post_parameters_wrapper
    return view(request, *args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\contrib\auth\views.py", line 63, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\views\generic\base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\views\generic\edit.py", line 142, in post
    return self.form_valid(form)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\contrib\auth\views.py", line 92, in form_valid
    auth_login(self.request, form.get_user())
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\contrib\auth\__init__.py", line 126, in login
    request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
  File "C:\Users\belog\ithogwarts\venv\lib\site-packages\django\utils\functional.py", line 241, in inner
    return func(self._wrapped, *args)

Exception Type: AttributeError at /users/login
Exception Value: 'AnonymousUser' object has no attribute '_meta'

ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ ᅠ

要将此 go 修复到您的设置中,并将 AUTH_USER_MODEL = 'myapp.Myapp' 添加到底部

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM