为什么Django内置的ModelBackend中的方法return传入obj时是空集?

Why do methods in Django's built-in ModelBackend return an empty set when an obj is passed in?

我在研究如何编写自己的身份验证后端时通读了 source code of Django's built-in ModelBackend,惊讶地发现 get_group_permissionsget_all_permissionshas_perm 方法只是 return 传入非 None obj 时的空集。他们为什么要这样做?我意识到 Django 没有内置的行级权限,但在默认方案中,对象的权限不会继承自 table 级(模型 class)权限Permission/Group table 代表给定用户?即,如果我有 obj,为什么内置的 auth 后端不锁定 obj 的模型(即 class)以确定用户是否具有与之相关的给定权限?

该代码的单元测试表明添加它是为了满足 ticket 12462。至于这是否正确,尚不清楚以这种方式调用这些函数的代码所期望的是什么。但是既然你知道它是如何工作的,你就可以相应地计划。