背景

最近发现用VSCode启动一个django项目后访问首页会报TemplateDoesNotExist错误,表现如下:

解决VSCode本地启动Django项目访问首页报TemplateDoesNotExist但是用Pycharm启动的就不会报这个错,经过一番研究,原来是setting.py中的TEMPLATES设置没有和BASE_DIR join一下,不完善的会导致报错的配置如下:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': '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',
                'blog.context_processors.add_variable_to_context',
            ],
            'string_if_invalid': 'InvalidVariable'
        },
    },
]

若要修复上述错误,需要按照如下配置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(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',
                'blog.context_processors.add_variable_to_context',
            ],
            'string_if_invalid': 'InvalidVariable'
        },
    },
]