utils.admin_utils module

class utils.admin_utils.SimpleSignFilter(request, params, model, model_admin)[源代码]

基类:SimpleListFilter

子类必须以field定义筛选的字段,可以定义lookup_choices

field: str = NotImplemented
lookups(request, model_admin)[源代码]

Must be overridden to return a list of tuples (value, verbose value)

parameter_name = 'Sign'
queryset(request, queryset: QuerySet)[源代码]

Return the filtered queryset.

title = '符号'
utils.admin_utils.as_action(description: str = None, /, register_to: list = None, permissions: str | list[str] = None, *, superuser: bool = None, single: bool = False, atomic: bool = False, update: bool = False)[源代码]

将函数转化为操作的形式,并试图注册 检查用户是否有权限执行操作,有权限时捕获错误 权限是列表,单个权限可只传入字符串,提供权限要求时默认不检查是否为超级用户 关键字参数进行检查或启用必要的环境

utils.admin_utils.as_display(description=None, /, register_to=None, *, except_value=None, boolean=None, order=None)[源代码]

将函数转化为展示内容的形式,并试图注册(register_to只应是list,否则会出错) 可以设置输出的形式,异常时的呈现值,呈现顺序等

utils.admin_utils.get_sign_filter(field: str, title: str = None, param_name: str = None, choices: tuple[tuple[str, str]] = None)[源代码]
utils.admin_utils.has_superuser_permission(self: ModelAdmin, request: HttpRequest, obj=None)[源代码]

检查是否为超级用户

utils.admin_utils.inherit_permissions(model: Model, superuser: bool = True)[源代码]

包装器,根据关联模型, 被包装的模型的action除四种自带权限以外,还可使用superuser和模型声明的各种权限 实现细节:为后台自动生成has_%perm%_permission权限检查函数,不覆盖已存在函数

参数:
  • model (Type[Model]) -- 后台的关联模型

  • superuser (bool, optional) -- 是否产生has_superuser_permission检查函数, defaults to True

utils.admin_utils.need_all_perms(necessary_perms: str | list = None, optional_perms: str | list = None, *, superuser=False)[源代码]

包装器,完全取代被包装函数,通过对象的has_$perm$_permission方法检查

utils.admin_utils.no_perm(self: ModelAdmin, request: HttpRequest, obj=None)[源代码]

总是返回没有权限

utils.admin_utils.perms_check(necessary_perms: str | list = None, optional_perms: str | list = None, *, superuser=False)[源代码]

检查函数,必须具有全部必要权限和至少一个可选权限(如果非空),单个权限可为字符串

utils.admin_utils.readonly_admin(admin: ModelAdmin, inline_attrs: bool = True, can_add: bool = False)[源代码]

将管理模型设为只读,inline_attrs决定是否设置内联模型相关属性,通常无影响

utils.admin_utils.readonly_inline(admin: ModelAdmin, inline_attrs: bool = True, can_add: bool = False)

将管理模型设为只读,inline_attrs决定是否设置内联模型相关属性,通常无影响