gpt4 book ai didi

django - 如何将详细信息对象传递给tastypie 中的自定义授权?

转载 作者:行者123 更新时间:2023-12-04 05:39:35 25 4
gpt4 key购买 nike

在 Tastypie 授权期间,如何访问请求中正在访问的详细端点对象?

我注意到 docs 中被覆盖的方法之一有一个对象参数——我该如何设置?

最佳答案

在分行烫发中,

https://github.com/toastdriven/django-tastypie/blob/perms/tastypie/authorization.py

类授权有一组方法,例如:

def read_detail(self, object_list, bundle):
"""
Returns either ``True`` if the user is allowed to read the object in
question or throw ``Unauthorized`` if they are not.
Returns ``True`` by default.
"""
return True

这里可以尝试通过 访问obj bundle.obj

如果你不能使用 perms 分支,我建议你这样:
class MyBaseAuth(Authorization):
def get_object(self, request):
try:
pk = resolve(request.path)[2]['pk']
except IndexError, KeyError:
object = None # or raise Exception('Wrong URI')
else:
try:
object = self.resource_meta.object_class.objects.get(pk=pk)
except self.resource_meta.DoesNotExist:
object = None
return object


class FooResourceAuthorization(MyBaseAuth):
def is_authorized(self, request, object=None):
if request.method in ('GET', 'POST'):
return True
elif request.method == 'DELETE':
object = self.get_object(request)
if object.profile = request.user.profile:
return True
return False

关于django - 如何将详细信息对象传递给tastypie 中的自定义授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11423030/

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