Я создаю сервер для Django Rest Framework.Он моделирует дома, договоры и владельцев.В принципе, House
может иметь несколько Contract
с, а каждый Contract
имеет Owner
.
. Я пишу пользовательское разрешение для DetailView
с для House
с, котороеследует разрешить запрос, только если у вас есть House
(если у вас есть Contract
для этого 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.
Как бы вы написали это? Большое спасибо ?