在django
项目中使用guardian
,我希望管理员能够通过管理接口分配对象权限。使用guardian
这是可能的,但是在管理界面中的对象权限表单中,组字段是一个TextField
。我如何使它成为一个ChoiceField
所有现有的组作为选择
是否有一种解决方案只需要在应用程序的admin.py
文件中添加代码,还是我们必须覆盖一些guardian
代码?我们如何在不影响guardian
功能的情况下做到这一点?
这是我的admin.py
文件:
from django.contrib import admin
from .models import MyModel
from guardian.admin import GuardedModelAdmin
class MyModelAdmin(GuardedModelAdmin):
pass
admin.site.register(MyModel, MyModelAdmin)
这是一个非常有效的解决方案。 GuardedModelAdminMixin的第一个子类
然后通过覆盖clean_group函数为组定义ModelManager:
最后,在Admin类中使用新的Mixin:
要在用户级别执行自定义查询集,请在新的mixin中使用此函数:
这里有一个完整的例子:LINK
相关问题 更多 >
编程相关推荐