我有一個鏈接使用兩條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