有没有办法,限制Django休息框架中相关对象的权限? 例如,我有用户拥有的票证模型实例:
class Ticket(models.Model):
# other fields
state = FSMField(default=SOME_STATE)
owner = models.ForeignKey(User, related_name="tickets", null=True)
def allocate(self, by=None):
# allocate the ticket here
pass
我希望所有者只能访问allocate
方法。
我应该使用has_object_permission
但不知道如何为相关对象执行此操作的图。
此外,我可以将除state
之外的所有字段标记为仅在序列化程序中读取。
有什么想法吗?
答案 0 :(得分:0)
对于输出,您可以按照that post中的说明覆盖相关的字段/序列化程序get_queryset
。
对于输入,您应该在第二次验证过程中处理权限 - 即在序列化程序返回验证数据之后。如果需要,您需要使用错误数据引发ValidationError
。