gpt4 book ai didi

python - 如何修复 Django 模板中显示数据库图像时的 'TypeError: join() '

转载 作者:行者123 更新时间:2023-12-01 00:28:54 26 4
gpt4 key购买 nike

我正在尝试使用 image.url 属性显示通过管理页面上传到我的数据库的一些图像。页面加载时,image.url 是正确的,但终端显示内部服务器错误,回溯以结尾“类型错误:join() 参数必须是 str 或 bytes,而不是 '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应该是字符串而不是列表

更改:

MEDIA_ROOT = [
os.path.join(BASE_DIR, 'my_portfolio/img'),
]

致:

MEDIA_ROOT = os.path.join(BASE_DIR, 'my_portfolio/img')

关于python - 如何修复 Django 模板中显示数据库图像时的 'TypeError: join() ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58335457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com