You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django Admin中为Author模型仅展示「Author」组的用户

实现Django Admin新增Author时仅显示「Author」组用户

要实现这个需求,直接在项目的admin.py里自定义Author模型的Admin类,重写外键字段的查询过滤逻辑就行,具体步骤如下:

  1. 导入所需模块
    在admin.py顶部导入相关模型和类:
from django.contrib import admin
from .models import Author
from .models import CustomUser  # 假设你的CustomUser在当前app的models文件中
from django.contrib.auth.models import Group
  1. 自定义AuthorAdmin类并过滤用户
    重写formfield_for_foreignkey方法,针对user字段筛选出属于「Author」组的用户:
class AuthorAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "user":
            # 获取已创建的「Author」分组
            author_group = Group.objects.get(name="Author")
            # 过滤出该组下的所有用户
            kwargs["queryset"] = CustomUser.objects.filter(groups=author_group)
        return super().formfield_for_foreignkey(db_field, request, **kwargs)
  1. 注册Author模型与自定义Admin类
    把Author模型和自定义的Admin类绑定注册:
admin.site.register(Author, AuthorAdmin)

配置完成后,在Django Admin中新增或编辑Author时,user下拉框里就只会显示属于「Author」组的用户了。

内容的提问来源于stack exchange,提问作者Celsea Mega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:34:50