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

Django报TypeError: method对象不支持项赋值

报错修复方案

你遇到的两个问题都是基础语法和配置顺序错误导致的,按以下步骤修改即可:

1. 修复 TypeError: 'method' object does not support item assignment 报错

这个错误出在你的manage.py文件中,os.environ.setdefault是可调用方法,不是字典对象,不能用方括号做键值赋值,属于调用语法书写错误。
找到manage.py里的这行错误代码:

os.environ.setdefault['DJANGO_SETTINGS_MODULE']='groceryshop.settings'

替换为正确的传参调用写法:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'groceryshop.settings')

2. 修复「应用未安装」的报错

这个问题是settings.py的代码顺序和内容错误导致的:

  • 你在settings文件最顶部就提前导入了自定义应用的模型、调用了WSGI初始化方法,此时Django还没完成配置加载,INSTALLED_APPS列表都没被读取,自然识别不到你注册的userprofile、allauth系列应用。
  • 直接删掉settings.py开头这三行不属于配置逻辑的错误代码:
    from userprofile.models import UserProfile
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()
    
    WSGI应用初始化逻辑本来就属于项目下的wsgi.py文件,不需要写在settings配置里;模型导入也不能放在settings文件头部,会触发循环导入、配置未就绪就调用模型的问题。

3. 补全缺失的必填配置

你在INSTALLED_APPS里注册了django.contrib.sites和allauth相关组件,必须补全对应必填配置,否则启动后还会抛错:

  • 在INSTALLED_APPS配置块下方添加配置:SITE_ID = 1
  • 本地开发阶段先把DEBUG = False改成DEBUG = True,否则看不到详细报错、静态资源也无法正常加载,等正式上线部署时再关闭DEBUG模式。

所有修改完成后,执行python manage.py migrate同步数据库结构,再启动服务即可正常访问登录/注册页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:27:18