Dus*_*att 2 python django django-rest-framework
我有这样的模特:
class TheModel(models.Model):
name = models.CharField(max_length=10)
owner = models.ForeignKey(settings.AUTH_USER_MODEL)
Run Code Online (Sandbox Code Playgroud)
我想创建一个API视图,列出所有等于的TheModel对象.TheModel.ownerrequest.user
我想我可以通过覆盖来做到这一点get_queryset,但似乎我应该使用自定义BasePermission.问题是它看起来不像BasePermission.has_object_permission在列表视图中的每个对象上运行.唯一可以运行的是BasePermission.has_permission.我测试了这个: -
class TheModelViewSet(viewsets.ModelViewSet):
model = TheModel
permission_classes = [IsOwner]
class IsOwner(permissions.BasePermission):
def has_permission(self, request, view):
print("checking has permission for {}".format(request.user))
return True
def has_object_permission(self, request, view, obj):
print("checking permission for {} on {}").format(request.user, obj.user)
return obj.owner == request.user
Run Code Online (Sandbox Code Playgroud)
印刷的唯一东西是来自的东西IsOwner.has_permission.
也许我只是在思考它而我应该只使用自定义查询集而不是使用权限?
| 归档时间: |
|
| 查看次数: |
1181 次 |
| 最近记录: |