如何解决Django:MEDIA_ROOT 错误:_getfullpathname: 路径应该是字符串、字节或 os.PathLike,而不是元组
我是 Django 框架的新手。我正在尝试将图像上传到客户表,但发生此错误:
_getfullpathname: path should be string,bytes or os.PathLike
我正在使用此代码上传:
MEDIA_ROOT = [BASE_DIR,'static/images']
我把代码改成
MEDIA_ROOT = os.path.join(BASE_DIR,'static/images')
但它说NameError: name 'os' not defined
。出现错误的原因是什么?如何解决?
settings.py
STATIC_URL = '/static/'
MEDIA = '/images/'
STATICFILES_DIRS = [BASE_DIR,'static']
MEDIA_ROOT = [BASE_DIR,'static/images']
models.py
class Customer(models.Model):
user = models.OneToOneField(User,null=True,on_delete=models.CASCADE)
name = models.CharField(max_length=200,null=True)
phone = models.CharField(max_length=11,null=True)
email = models.EmailField(max_length=200,null=True)
profile_pic = models.ImageField(null=True,blank=True)
date_created = models.DateTimeField(auto_now_add=True,null=True)
解决方法
试试这个
在 settings.py 中
import os
# Build paths inside the project like this: os.path.join(BASE_DIR,...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
MEDIA = '/images/'
STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)
MEDIA_ROOT = BASE_DIR + 'static/images'
参考此https://docs.djangoproject.com/en/3.1/howto/static-files/
,我遇到了同样的问题,这可能有效 改成这样:
MEDIA_ROOT = os.path.join(BASE_DIR,'static')
MEDIA_URL = '/media/'
对于错误 os
not defined 你只需要导入它
import os
from pathlib import Path
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。