擅长:python、mysql、java
<p>我想你可以在这里使用<code>django-rules</code>库。<a href="https://github.com/dfunckt/django-rules" rel="nofollow">Link</a></p>
<p>它是一个与决策树非常相似的基于规则的引擎,可以很容易地与DRF的权限类框架集成。在</p>
<p>最棒的是,您可以对简单权限执行设置操作,并从中创建复杂权限。在</p>
<p>示例</p>
<pre><code>>>> @rules.predicate
>>> def is_admin(user):
... return user.is_staff
...
>>> @rules.predicate
>>> def is_object_owner(user, object):
return object.owner == user
</code></pre>
<p>谓词可以对给定参数执行几乎任何操作,但如果检查的条件为True,则必须始终返回True,否则返回False。
现在组合这两个谓词。。在</p>
^{pr2}$
<p>您可以在权限类的has\u permissions方法中使用这个新的谓词规则<code>is_object_editable</code>。在</p>