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

Django 2.0执行makemigrations报错:Application labels不唯一,重复项auth

解决Django 2.0中"Application labels aren't unique, duplicates: auth"错误

嘿,这个问题我之前帮不少开发者排查过,出现这个报错的核心原因是你的项目里有两个应用的label都是auth,Django 2.0开始对应用label的唯一性要求很严格,所以直接抛出了这个错误。下面是具体的解决步骤:

1. 检查INSTALLED_APPS是否重复注册了auth

打开项目根目录下的settings.py,找到INSTALLED_APPS配置列表,仔细查看是否重复添加了django.contrib.auth。比如可能不小心写成了这样:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    # ... 其他应用
    'django.contrib.auth',  # 这里重复了!
]

如果发现重复,删掉其中一个即可。

2. 排查自定义应用的AppConfig是否冲突

如果你开发了自己的自定义应用,一定要检查应用目录下的apps.py文件,确认有没有把应用的name或label设为auth。比如错误的写法:

from django.apps import AppConfig

class CustomAuthConfig(AppConfig):
    name = 'auth'  # 这里和内置的auth应用重名了
    label = 'auth'

把name改成你的应用实际名称(比如my_custom_auth),label也设置成唯一值,比如my_auth,修改后记得在INSTALLED_APPS里用完整的AppConfig路径注册,比如:

INSTALLED_APPS = [
    # ... 其他应用
    'my_custom_auth.apps.CustomAuthConfig',
]

3. 清理迁移缓存(若上述步骤无效)

如果前两步都没问题但报错依然存在,可以尝试重置迁移状态:

  • 删除每个应用的migrations文件夹中,除了__init__.py之外的所有迁移文件
  • 运行命令:python manage.py migrate --fake,这个命令会让Django认为所有迁移都已执行,不会真正修改数据库
  • 最后重新执行:python manage.py makemigrations

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:36:10