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

Django中AbstractBaseUser使用phonenumber_field迁移报ImportError如何解决?

错误原因及修复方案

你遇到的报错是配置语法错误引发的,按以下步骤修改即可解决:

  1. 核心报错根因修复
    你的settings.py中INSTALLED_APPS配置段的'Accounts.apps.AccountsConfig'末尾遗漏了英文逗号,Python会自动拼接前后两行字符串,变成'Accounts.apps.AccountsConfigphonenumber_field',和报错提示完全吻合。
    修改后配置如下:

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'Accounts.apps.AccountsConfig',  # 这里补充英文逗号
        'phonenumber_field',
    ]
    
  2. 其他关联问题修复(避免后续报错)

    • 修复models.py的两处问题:
      • 顶部补充导入:from phonenumber_field.modelfields import PhoneNumberField
      • REQUIRED_FIELDS要求为列表/元组类型,将现有字符串写法改为REQUIRED_FIELDS = ['phone_number']
    • 修复forms.py的语法错误:UserChangeForm类中的fields = '__all_'少了末尾下划线,改为fields = '__all__'

所有修改完成后,删除Accounts应用下migrations目录中除__init__.py外的所有文件,重新执行迁移命令即可正常构建数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:45:06