python - 在 Django 模板中显示数据库图像时如何修复“TypeError:join()”
问题描述
我正在尝试使用 image.url 属性通过管理页面显示一些上传到我的数据库的图像。页面加载时,image.url 正确,但终端显示内部服务器错误,回溯以“TypeError: join() argument must be str or bytes, not 'list'”结尾
我找不到具体调用 join 方法的位置,因为回溯似乎只谈论内部文件。
我认为它可能与覆盖保存功能有关,但将功能注释掉会产生相同的结果。
settings.py STATIC 和 MEDIA 和 MEDIA_URL 都设置好了。
模板:
<img class='project-details-image' src="{{ project.image.url }}
模型:
image=models.ImageField(upload_to='project-covers/', default='/Default.png', null=True)
设置.py:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, '/my_portfolio/my_portfolio/static/')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'my_portfolio/static'),
]
MEDIA_ROOT = [
os.path.join(BASE_DIR, 'my_portfolio/img'),
]
MEDIA_URL = '/img/'
追溯:
File "/home/user/django-portfolio/lib/python3.5/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/user/django-portfolio/lib/python3.5/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/user/django-portfolio/lib/python3.5/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/user/django-portfolio/lib/python3.5/site-packages/django/views/static.py", line 36, in serve
fullpath = Path(safe_join(document_root, path))
File "/home/user/django-portfolio/lib/python3.5/site-packages/django/utils/_os.py", line 32, in safe_join
final_path = abspath(join(base, *paths))
File "/usr/lib/python3.5/posixpath.py", line 89, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.5/genericpath.py", line 143, in _check_arg_types
(funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'list'
我希望能够使用模板标签功能来显示数据库中的相关图像。目前我只是想显示我的默认图像,但是,实际图像将比一个文件夹低一个文件夹。
解决方案
MEDIA_ROOT应该是 astring
而不是list
.
改变:
MEDIA_ROOT = [
os.path.join(BASE_DIR, 'my_portfolio/img'),
]
到:
MEDIA_ROOT = os.path.join(BASE_DIR, 'my_portfolio/img')
推荐阅读
- gitlab - 向 Hashicorp Vault 验证 Gitlab CI/CD Runner 的最佳方法是什么?
- sql - 我在“字段列表”中收到错误代码 1054 未知列“Charadrius_vociferus”
- c# - 在 Android 应用程序和 C# 应用程序(文本和图像)之间进行通信的最佳方式
- angular - NativeScript - 如何延迟路由直到侧抽屉关闭?
- python-3.x - 如何从 AWS Lambda Python Rest API 下载文件
- sql-server - 如何在 SQL Server 中格式化 int
- python - 使用 python (pandas, matplotlib) 在数据中创建具有选定参数的直方图
- android - Android应用程序文本对齐在各种设备上不匹配
- python - 在 Python 中访问数据库无法追踪的数据源
- angular - Asp.Net Core Web APi 和 Azure AD 身份验证