ValueError:在Django框架中没有足够的值可解包预期2,得到1

问题描述

我是django的初学者,我刚刚开始学习如何加载静态文件以及有关静态文件的所有知识。在设置完整的代码后,我运行服务器时遇到此错误

"""
Django settings for project3 project.

Generated by 'django-admin startproject' using Django 3.1.1.

For more information on this file,see
https://docs.djangoproject.com/en/3.1/topics/settings/

For the full list of settings and their values,see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""

from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
TEMPLATE_Dirs = [os.path.join(BASE_DIR / 'templates'),]
STATIC_Dirs = [os.path.join(BASE_DIR / 'static'),]

# Application deFinition

INSTALLED_APPS = [
    'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','course','fees',]


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates','Dirs': TEMPLATE_Dirs,'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',],},]



# Static files (CSS,JavaScript,Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/

STATIC_URL = '/static/'
STATICFILES_Dirs = [STATIC_Dirs,]

请告诉我为什么会出现此错误以及如何解决

这里是setting.py文件

SELECT

解决方法

Django 3.1不再使用os来联接settings.py中的路径。它使用pathlib,它提供了Path对象...

BASE_DIR = Path(__file__).resolve().parent.parent

然后只能用斜杠将其连接:

TEMPLATE_DIRS = [BASE_DIR / 'templates',]
STATIC_DIRS = [BASE_DIR / 'static',]

那么根本不需要import os ...

我很奇怪,finders.py中的代码期望使用/连接pathlib的2个部分,然后使用os.join以某种方式将其合并,将其减少到一个var,因此缺少值。最后一点不过是一种猜测-我还没有测试那到底是怎么回事。但是请按照我的建议修复您的代码,我认为它会起作用。

这就是我在当前项目的3.1版本中配置内容的方式

TEMPLATE_DIR = BASE_DIR / "templates"
TEMPLATES = [
{
    "BACKEND": "django.template.backends.django.DjangoTemplates","DIRS": [
        TEMPLATE_DIR,],...
}

...

STATIC_URL = "/static/"
STATICFILES_DIRS = (BASE_DIR / "static",)
,
prefix,root = root

将其更改为

prefix = root

    prefix,root = root,root

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...