我正在为 Django Rest Framework 构建服务器。它模拟房屋、合同和业主。基本上, aHouse
可以有几个Contract
s,每个Contract
都有一个Owner
.
我正在为DetailView
s编写一个自定义权限House
,如果您拥有该 s 应该只允许请求House
(如果您有一个sContract
并且House
您是Owner
.
这是我到目前为止所拥有的:
class UserOwnsTheHouseSlugInUrlPermission(permissions.BasePermission):
"""
Permission to check if the user is an owner for the given House.
This permission needs a house_slug to be given in the url.
"""
message = _(USER_IS_NOT_OWNER_PERMISSION_DENIED_MESSAGE)
def has_object_permission(self, request, view, obj):
owner = get_object_or_None(UserOwnerProfile, user=request.user)
if owner and owner in obj.contracts.owner:
return True
return False
此代码不起作用。在 JavaScript 中,您可以编写:
if(obj.contracts.map(contract => contract.owner).includes(owner))
或类似的东西。Python 不是我的主要语言,所以我不知道如何在 Python 或 Django 中表达该条件。
你会怎么写这个?非常感谢