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

Django自动注册模型报错:Group已在auth应用中注册

Django Admin自动注册模型报错解决办法

问题场景

在admin.py中编写自动注册所有模型的代码,添加了AlreadyRegistered异常捕获,但仍报错提示Group模型已在auth应用中注册:

代码示例

from django.contrib import admin
from django.apps import apps


models = apps.get_models()

for model in models:
    try:
        admin.site.register(model)
    except admin.sites.AlreadyRegistered:
        pass

报错信息

raise AlreadyRegistered(msg)

django.contrib.admin.sites.AlreadyRegistered: The model Group is already registered in app 'auth'.

原因分析

apps.get_models()会返回所有已安装应用的模型,包括Django自带auth应用的Group、User等模型,这些模型默认已经在Admin后台注册过了。同时代码中捕获异常的路径admin.sites.AlreadyRegistered,可能和实际抛出的异常类存在匹配偏差。

解决办法

办法1:只注册当前应用的模型(推荐)

无需处理其他应用的模型,只遍历并注册当前app下的所有模型,从根源避免冲突:

from django.contrib import admin
from django.apps import apps

# 替换成你自己的应用名称,比如"blog"、"store"
current_app = apps.get_app_config("你的应用名称")
models = current_app.get_models()

for model in models:
    try:
        admin.site.register(model)
    except admin.AlreadyRegistered:
        pass

办法2:修正异常捕获类

如果确实需要注册所有应用的模型,修正异常捕获的类路径,确保能正确捕获已注册异常:

from django.contrib import admin
from django.apps import apps


models = apps.get_models()

for model in models:
    try:
        admin.site.register(model)
    except admin.AlreadyRegistered:
        pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:04:55