我有一个链接使用两条Django模型:如何在Django REST框架中为POST请求设置权限?
class ParentModel(models.Model):
creator = models.ForeignKey(User, related_name='objects')
name = models.CharField(max_length=40)
class ChildModel(models.Model):
parent = models.ForeignKey(ParentModel, related_name='child_objects')
name = models.CharField(max_length=40)
现在,儿童模型制作视图集中的时候,我想它,如果它的父被认为是创造相同的用户创建仅创建子实例。那我包括在我的ChildViewSet(viewsets.ModelViewSet)
权限类看起来是这样的:
class IsOwner(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
if request.method in permissions.SAFE_METHODS:
return True
return obj.parent.creator == request.user
这似乎只是正常工作当我使用PATCH
方法,但似乎POST
方法不当时我明确地察觉这种权限类POST
方法设置return False
。
我在做什么错误,以及如何解决它?
感谢您的支持!我设法调整了我正在做的事情。 – whoisearth