- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想使用 Django 的内置 LoginView
。它工作正常,直到我使用正确的密码登录用户(如果密码错误,它就可以工作)。然后我收到此错误:
'AnonymousUser' object has no attribute '_meta'
我已经添加了AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
到我的settings.py,我查看了 Django login AttributeError: 'AnonymousUser' object has no attribute '_meta'以及其他网页,但他们无法帮助我。
MIDDLEWARE = [
# Must have middlewares
'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',
'simple_history.middleware.HistoryRequestMiddleware',
'admin_reorder.middleware.ModelAdminReorder',
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
# Custom middlewares
'utils.Middleware.RangesMiddleware.RangesMiddleware',
'utils.Middleware.AdminAccessMiddleware.AdminAccessMiddleware',
'apps.log_request.middlewares.RequestLogMiddleware',
]
.
Internal Server Error: /auth/anmelden
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Program Files\Python37\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Program Files\Python37\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\utils\decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\views\generic\base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\utils\decorators.py", line 45, in _wrapper
return bound_method(*args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\views\decorators\debug.py", line 76, in sensitive_post_parameters_wrapper
return view(request, *args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\utils\decorators.py", line 45, in _wrapper
return bound_method(*args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\utils\decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\utils\decorators.py", line 45, in _wrapper
return bound_method(*args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\contrib\auth\views.py", line 61, in dispatch
return super().dispatch(request, *args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
return handler(request, *args, **kwargs)
File "C:\Program Files\Python37\lib\site-packages\django\views\generic\edit.py", line 142, in post
return self.form_valid(form)
File "C:\Program Files\Python37\lib\site-packages\django\contrib\auth\views.py", line 90, in form_valid
auth_login(self.request, form.get_user())
File "C:\Program Files\Python37\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:\Program Files\Python37\lib\site-packages\django\utils\functional.py", line 257, in inner
return func(self._wrapped, *args)
AttributeError: 'AnonymousUser' object has no attribute '_meta'
[05/Jun/2019 21:25:28] "POST /auth/anmelden HTTP/1.1" 500 159900
此错误发生在 \django\utils\decorators.py
在第 142 行( response = view_func(request, *args, **kwargs)
)(我使用 PyCharm 进行调试)。我的middleware
是:<django.middleware.csrf.CsrfViewMiddleware object at 0x000002105D119470>
和我的view_func
是 functools.partial(<bound method LoginView.dispatch of <django.contrib.auth.views.LoginView object at 0x000002105F768C50>>)
.
我的 urls.py 中的路径:
path('anmelden', LoginView.as_view(
template_name="authenticate/login.html",
authentication_form=SignInForm,
extra_context={
"selected": "authenticate",
"title": title_suffix("Anmelden", Config.verbose_name),
},
), name="login"),
我的clean
在我的SignInForm
中起作用:
def clean(self):
User.remove_expired_user()
cleaned_data = self.cleaned_data # That's the error. I had to use self.clean()!!!!
username = cleaned_data.get("username")
password = cleaned_data.get("password")
if "@" in username:
try:
username = User.objects.get(email__iexact=username).username
except ObjectDoesNotExist:
raise forms.ValidationError("Diese E-Mail-Adresse wurde nicht gefunden")
else:
try:
username = User.objects.get(username=username).username
except ObjectDoesNotExist:
raise forms.ValidationError("Dieser Benutzername wurde nicht gefunden")
user = authenticate(username=username, password=password)
if user is None:
try:
us = User.objects.get(username=username)
except ObjectDoesNotExist:
pass
else:
if us.check_password(password) and not us.is_active:
raise forms.ValidationError("Dieser Account ist deaktiviert. Du kannst ihn über deine E-Mail aktivieren.")
raise forms.ValidationError("Falsches Passwort")
return cleaned_data
我发现错误:
在我的clean
我使用的功能self.cleaned_data
而不是self.clean()
.
最佳答案
在您的计算机上找到加载 Django 的目录。
python -c "import sys; print([p for p in sys.path if 'site-packages' in p])"
打开该目录并找到 django
。插入 import pdb; pdb.set_trace()
在https://github.com/django/django/blob/a8e2a9bac6e548d6ab2e13af6171d2fdd3b8055b/django/contrib/auth/init.py#L72并逐步检查沿途的每一步。在此过程中的某个地方,您应该达到一个期望 User 模型但获得 AnonymousUser 模型的程度。一旦找到了这一点,就会更容易找出其背后的“原因”。
关于python - Django - 登录 View : 'AnonymousUser' object has no attribute '_meta' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56465686/
我遵循了一本名为“Sitepoint Full Stack Javascript with MEAN”的书中的教程,我刚刚完成了第 6 章,应该已经创建了一个带有“数据库”的“服务器”。数据库只不过是
在 Jquery 中,我创建两个数组,一个嵌入另一个数组,就像这样...... arrayOne = [{name:'a',value:1}, {name:'b',value:2}] var arra
这个问题在这里已经有了答案: What is the explanation for these bizarre JavaScript behaviours mentioned in the 'Wa
我被放在别人的代码上,有一个类用作其他组件的基础。当我尝试 ng serve --aot(或 build --prod)时,我得到以下信息。 @Component({ ...,
我正在测试一些代码,并使用数据创建了一个 json 文件。 问题是我在警报中收到“[object Object],[object Object]”。没有数据。 我做错了什么? 这是代码:
我想打印 [object Object],[object Object] 以明智地 "[[{ 'x': '1', 'y': '0' }, { 'x': '2', 'y': '1' }]]"; 在 ja
我有一个功能 View ,我正在尝试以特殊格式的方式输出。但我无法让列表功能正常工作。 我得到的唯一返回是[object Object][object Object] [object Object]
在使用优秀的 Sim.js 和 Three.js 库处理 WebGL 项目时,我偶然发现了下一个问题: 一路走来,它使用了 THREE.Ray 的下一个构造函数: var ray = new THRE
我正在使用 Material UI 进行多重选择。这是我的代码。 {listStates.map(col => (
我的代码使用ajax: $("#keyword").keyup(function() { var keyword = $("#keyword").val(); if (keyword.
我遇到了下一个错误,无法理解如何解决它。 Can't resolve all parameters for AuthenticationService: ([object Object], ?, [o
我正在尝试创建一个显示动态复选框的表单,至少应选中其中一个才能继续。我还需要获取一组选中的复选框。 这是组件的代码: import { Component, OnInit } from '@angul
我正在开发 NodeJs 应用程序,它是博客应用程序。我使用了快速验证器,我尝试在 UI 端使用快速闪存消息将帖子保存在数据库中之前使用闪存消息验证数据,我成功地将数据保存在数据库中,但在提交表单后消
我知道有些人问了同样的问题并得到了解答。我已经查看了所有这些,但仍然无法解决我的问题。我有一个 jquery snipet,它将值发送到处理程序,处理程序处理来自 JS 的值并将数据作为 JSON 数
我继承了一个非常草率的项目,我的任务是解释为什么它不好。我注意到他们在整个代码中都进行了这样的比较 (IQueryable).FirstOrDefault(x => x.Facility == fac
我只是在删除数组中的对象时偶然发现了这一点。 代码如下: friends = []; friends.push( { a: 'Nexus', b: 'Muffi
这两个代码片段有什么区别: object = nil; [object release] 对比 [object release]; object = nil; 哪个是最佳实践? 最佳答案 object
我应该为其他人将从中继承的第一个父对象传递哪个参数,哪个参数更有效 Object.create(Object.prototype) Object.create(Object) Object.creat
我在不同的对象上安排不同的选择器 [self performSelector:@selector(doSmth) withObject:objectA afterDelay:1]; [self per
NSLog(@"%p", &object); 和 NSLog(@"%p", object); 有什么区别? 两者似乎都打印出一个内存地址,但我不确定哪个是对象的实际内存地址。 最佳答案 这就是我喜欢的
我是一名优秀的程序员,十分优秀!