班上没有我们的归属感

2024-06-16 10:02:09 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图创建一个帖子时,它会显示这个错误

Exception Type: AttributeError at /home/
Exception Value: 'HomeView' object has no attribute 'user'

还有我的视图.py是

^{pr2}$

Traceback:

File "/home/zola/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner 39. response = get_response(request)

File "/home/zola/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)

File "/home/zola/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/zola/lib/python3.5/site-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs)

File "/home/zola/lib/python3.5/site-packages/django/views/generic/base.py" in dispatch 88. return handler(request, *args, **kwargs)

File "/home/zola/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 22. if test_func(request.user):

请帮忙

我失踪很久了。使用这种语言。那就帮我解决这个错误吧


Tags: djangoinpycorehomebasegetresponse
1条回答
网友
1楼 · 发布于 2024-06-16 10:02:09

不要使用@login_required修饰符,而是在post方法上使用@method_decorator(login_required),如下所示:

from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator

class HomeView(TemplateView):
    # ...
    @method_decorator(login_required)
    def post(self, request):
        # ...

看到错误消息的原因是因为login_required是一个函数修饰符-因此它希望request对象是传递给视图的第一个参数。您的post定义是一个方法,因此selfHomeView)是传递的第一个参数,login_required试图将其用作请求实例。在

method_decorator用于将每个函数修饰符转换为方法修饰符。See the docs for more info。在

相关问题 更多 >