如何让Django开发服务器不加载Admin应用以解决启动报错?
解决Django开发服务器启动时Admin应用相关报错
问题场景
启动Django开发服务器时出现如下报错:
Exception in thread django-main-thread: Traceback (most recent call last): File "/my/virtual/lib/python3.8/threading.py", line 932, in _bootstrap_inner self.run() File "/my/virtual/lib/python3.8/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/my/virtual/environment/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "/my/virtual/environment/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 118, in inner_run self.check(display_num_errors=True) File "/my/virtual/environment/lib/python3.8/site-packages/django/core/management/base.py", line 469, in check raise SystemCheckError(msg) django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues: ERRORS: ?: (admin.E403) A 'django.template.backends.django.DjangoTemplates' instance must be configured in TEMPLATES in order to use the admin application.
这是一个Django REST Framework项目,未使用Admin应用,需要配置让runserver不加载Admin应用。
解决方案
1. 移除INSTALLED_APPS中的Admin应用
打开项目根目录下的settings.py,找到INSTALLED_APPS列表,删除'django.contrib.admin'这一项:
修改前:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 其他第三方或自定义应用 ]
修改后:
INSTALLED_APPS = [ 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 其他第三方或自定义应用 ]
2. (可选)移除URL配置中的Admin路由
如果项目的urls.py中存在Admin相关的路由配置,也需要一并删除:
from django.contrib import admin # 移除这条导入语句 path('admin/', admin.site.urls), # 移除这条路由
原理说明
即使你没有主动使用Admin应用,只要INSTALLED_APPS中保留了django.contrib.admin,Django启动时就会自动加载该应用并执行系统检查。由于你的项目未配置DjangoTemplates后端,就触发了admin.E403错误。彻底移除Admin相关配置后,Django就不会再加载该应用,自然也就不会触发对应的检查报错。
内容的提问来源于stack exchange,提问作者NPatel
相关产品推荐
相关产品推荐

