【问题标题】:Django - 'User' object has no attribute 'session_set'Django - “用户”对象没有属性“session_set”
【发布时间】:2019-03-20 10:07:23
【问题描述】:

我想在我的 Django 项目中添加一个 Sessions 选项卡:

navbar.html

 <li><a href="{% url 'user_sessions:session_list' %}">Sessions</a></li>

但我不断收到以下错误:

'User' object has no attribute 'session_set''User' object has no attribute 'session_set'
Exception Location: C:\Users\User\lib\site-packages\django\utils\functional.py in inner, line 214

我不知道这个错误来自哪里,我没有在网上找到任何其他参考,谁能帮助我?

这是我正在使用的登录视图:https://github.com/Bouke/django-two-factor-auth/blob/master/two_factor/views/core.py

完整追溯

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/account/sessions/

Django Version: 2.1.7
Python Version: 3.7.0
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'main.apps.MainConfig',
 'tinymce',
 'captcha',
 'django.contrib.sites',
 'django_otp',
 'django_otp.plugins.otp_static',
 'django_otp.plugins.otp_totp',
 'two_factor']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django_otp.middleware.OTPMiddleware']



Traceback:

File "C:\Users\User\lib\site-packages\django\core\handlers\exception.py" in inner
  34.             response = get_response(request)

File "C:\Users\User\lib\site-packages\django\core\handlers\base.py" in _get_response
  126.                 response = self.process_exception_by_middleware(e, request)

File "C:\Users\User\lib\site-packages\django\core\handlers\base.py" in _get_response
  124.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\User\lib\site-packages\django\views\generic\base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)

File "C:\Users\User\lib\site-packages\django\utils\decorators.py" in _wrapper
  45.         return bound_method(*args, **kwargs)

File "C:\Users\User\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
  21.                 return view_func(request, *args, **kwargs)

File "C:\Users\User\lib\site-packages\user_sessions\views.py" in dispatch
  22.                                                         **kwargs)

File "C:\Users\User\lib\site-packages\django\views\generic\base.py" in dispatch
  88.         return handler(request, *args, **kwargs)

File "C:\Users\User\lib\site-packages\django\views\generic\list.py" in get
  142.         self.object_list = self.get_queryset()

File "C:\Users\User\lib\site-packages\user_sessions\views.py" in get_queryset
  14.         return self.request.user.session_set\

File "C:\Users\User\lib\site-packages\django\utils\functional.py" in inner
  214.         return func(self._wrapped, *args)

File "C:\Users\User\lib\site-packages\django\utils\functional.py" in inner
  214.         return func(self._wrapped, *args)

Exception Type: AttributeError at /account/sessions/
Exception Value: 'User' object has no attribute 'session_set'

【问题讨论】:

  • 你似乎在使用这个包django-user-sessions.readthedocs.io/en/stable/installation.html如果是这样请按照安装说明进行操作
  • user_sessions 添加到您已安装的应用程序中,如果您想对用户使用带有外键的会话,请迁移。另请参阅示例应用程序的 settings.py
  • 是的!谢谢你们俩!我怀疑这是一个导入错误,但由于我注意到我的 INSTALLED_APPS 上已经有一个 Session 模块,所以我无法弄清楚我缺少什么!

标签: python django django-templates django-views


【解决方案1】:

如果您想使用 django-user-sessions,您需要将 INSTALLED_APPS 中的 django.contrib.sessions 替换为 user_sessions。这将正确设置其模型。

此外,请确保您还关注了所有其他 installation instructions

【讨论】:

  • 确实,我的错误是使用 django.contrib.sessions 而不是 django-user-sessions。安装并添加到我的 INSTALLED_APPS django-user-sessions 工作!
  • 你知道如何从 user_sessions 导入 Session 类吗?
猜你喜欢
  • 2020-03-10
  • 2011-12-14
  • 2018-08-09
  • 2020-01-12
  • 2019-06-23
  • 2016-02-02
  • 2018-02-15
  • 2017-09-13
  • 2015-04-04
相关资源
最近更新 更多