python - 在 database_name 中返回 database_name == ':memory:' 或 'mode=memory' TypeError: 'PosixPath' 类型的参数不可迭代
问题描述
我在 django 中制作了一个 webapp。我尝试将它部署在 pythonanywhere 一切正常但最后当我尝试使用python manage.py collectstatic
它收集静态文件时给了我这个错误:
return database_name == ':memory:' or 'mode=memory' in database_name
TypeError: argument of type 'PosixPath' is not iterable
提出一些想法,我该如何解决。
这是我的 setting.py 文件
import os
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '!25%rdt-$_$bsc*fl)e7x2*x6awjca^3_2t-k@l0tu*8k!f33&'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['*']
# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR / 'static/')
解决方案
如果您使用的是 Django v3.1,那么您可以尝试str()
在文件中放置数据库路径settings.py
。这是因为 SQLite 只接受字符串,而 Django v3.1settings.py
返回一个pathlib.Path
对象。
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': str(BASE_DIR / 'db.sqlite3'),
}
}
我有同样的问题,在这里找到了答案: https ://forum.djangoproject.com/t/django-tutorial-python-manage-py-startapp-polls-fails/2718
推荐阅读
- dart - 如何使用 dart-lang/markdown 显示段落?
- javascript - 提取网页的调色板
- php - 在 stderr 中发送的 FastCGI:“PHP 消息:PHP 警告:迁移 wordpress 后
- ruby - 使用 Ruby 在多个目录中打开相同的文件名
- python - 新行类型之间的区别
- jquery - 无法为输入类型文件添加 jquery 类
- java - 异步上下文不会在取消时停止
- r - 使用 R 中的 ggplot2 渐变中 0 的颜色错误
- java - 以链表方式检索记录的算法
- php - 如何在不使用 empty() 和“&&”运算符的情况下处理空帖子(最多 20 个帖子)