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

Django GraphQL-JWT项目引入django-graphql-auth后出现ImportError求助

解决Django中ImportError: 无法从'django.utils.encoding'导入'force_text'的问题

错误信息

ImportError: 无法从'django.utils.encoding'导入'force_text'

问题原因

你安装的django-graphql-auth版本与当前使用的Django版本不兼容。Django 3.0及以上版本已移除django.utils.encoding中的force_text函数,替换为force_str,而旧版django-graphql-auth仍在调用这个已废弃的函数。

解决方案

1. 升级django-graphql-auth到兼容版本

执行命令升级到适配高版本Django的最新版:

pip install --upgrade django-graphql-auth

2. 修正代码中的语法错误

你的ExtendUser类存在字符串未闭合的问题,虽不是当前错误的直接原因,但会引发其他异常,需修正:

from django.db import models 
from django.contrib.auth.models import AbstractUser

class ExtendUser(AbstractUser):
    email = models.EmailField(blank=False, unique=True)
    EMAIL_FIELD = 'email'  # 补充闭合引号
    USERNAME_FIELD = 'username'  # 补充闭合引号

3. 应急方案(不推荐)

若升级包后仍有问题,可手动修改django-graphql-auth源码的导入逻辑:找到所有使用force_text的文件,将导入语句替换为兼容写法:

try:
    from django.utils.encoding import force_str as force_text
except ImportError:
    from django.utils.encoding import force_text

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:47:05