首次运行Django应用报错:AppConfig.__init__()缺少必填参数'app_module'
Django运行报错:AppConfig.init() 缺少必填参数'app_module'
错误详情
**AppConfig.__init__() missing 1 required positional argument: 'app_module'** 请求方法:GET 请求URL: http://127.0.0.1:8000/ Django版本: 4.1.2 异常类型: TypeError 异常值: AppConfig.__init__() missing 1 required positional argument: 'app_module' 异常位置: \studybud\env\lib\site-packages\django\template\context.py, line 254, in bind_template 触发位置: base.views.home
相关代码
views.py
from django.shortcuts import render from django.http import HttpResponse def home(request): return render(request, 'home.html') def room(request): return render(request, 'room.html')
Settings.py
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ BASE_DIR / 'templates' ], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'base.apps.BaseConfig' ], }, }, ]
urls.py
from django.urls import path from . import views urlpatterns = [ path ('',views.home, name="home"), path ('room/',views.room, name="room"), ]
解决方法
问题出在Settings.py的TEMPLATES配置里:context_processors列表中错误添加了base.apps.BaseConfig——这是Django的AppConfig类,而context_processors要求的是上下文处理器函数,不是类。
修改Settings.py,把这一行从context_processors中移除即可:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ BASE_DIR / 'templates' ], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages' # 已移除'base.apps.BaseConfig' ], }, }, ]
保存后重启Django服务,错误即可修复。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

