gpt4 book ai didi

python - 如何在 Django 休息 View 中使用 login_required

转载 作者:太空狗 更新时间:2023-10-29 18:21:01 25 4
gpt4 key购买 nike

我正在尝试在特定 View 中使用自定义登录 url

@login_required(login_url='/account/login/')
class home(APIView):
renderer_classes = (TemplateHTMLRenderer,)

def get(self, request, format=None):
template = get_template(template_name='myapp/template.html')
return Response({}, template_name=template.template.name)

但回溯显示

File "django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "django/contrib/auth/decorators.py", line 22, in _wrapped_view
return view_func(request, *args, **kwargs)
TypeError: __init__() takes exactly 1 argument (2 given)

是否可以在基于类的 View 中使用自定义 login_required?

谢谢!

最佳答案

我认为您正在搜索 django rest framework APIView;在这里你可以使用权限类;请参阅此文档 http://www.django-rest-framework.org/api-guide/permissions/

添加到seetings.py

REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}
from rest_framework.permissions import IsAuthenticated

class home(APIView):
renderer_classes = (TemplateHTMLRenderer,)
permission_classes = (IsAuthenticated,)

def get(self, request, format=None):
template = get_template(template_name='myapp/template.html')
return Response({}, template_name=template.template.name)

关于python - 如何在 Django 休息 View 中使用 login_required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33231682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com