python - Django 保存元数据 -[Errno 2] 没有这样的文件或目录:
问题描述
我有一个问题。我遇到了路径问题:
[Errno 2] 没有这样的文件或目录:
我试过:
url = self.image.url
image_meta = image.open(url)
然后在添加 URL "https://...." + self.image.url 的第一部分时,我仍然遇到同样的问题你知道吗
class Picture(models.Model):
catego = models.ForeignKey(Catego,on_delete=models.CASCADE,related_name="catego_pictures")
user = models.ForeignKey(User, blank=True, null=True,on_delete=models.CASCADE,related_name='user_pictures')
image = models.ImageField(upload_to='nutriscore/')
latitude = models.DecimalField(max_digits=9, decimal_places=6, blank=True, default='0')
longitude = models.DecimalField(max_digits=9, decimal_places=6, blank=True, default='0')
date = models.CharField(max_length=100, blank=True)
software = models.CharField(max_length=100, blank=True)
artist = models.CharField(max_length=100, blank=True)
metadata = models.TextField(max_length=1000, blank=True)
pictureoption = models.CharField(max_length=20,choices=Pictureoption.choices,default=Pictureoption.HOME,)
publishing_date = models.DateField(auto_now_add=True)
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
url = self.image.url
full_path = os.listdir(url)
image_meta = image.open(full_path)
exif = {}
for tag, value in image_meta.get_exif().items():
if tag in TAGS:
exif[TAGS[tag]] = value
if 'DateTime' in exif:
self.date = DateTime
if 'Software' in exif:
self.software = Software
if 'Artist' in exif:
self.artist = Artist
...
self.metadata = exif
super().save(*args, **kwargs)
def __str__(self):
return self.catego.name
解决方案
您应该使用.path
图像对象的属性,而不是.url
,因为您似乎正在尝试使用其本地路径访问文件,而不是将其作为 Web 资源获取。
推荐阅读
- azure-iot-hub - 将 mosquitto 代理与 Azure IoT 中心桥接时意外连接重置
- c - 在堆栈中使用 strcpy() 失败
- reporting-services - 使用参数作为过滤器 - 多个值不起作用
- ruamel.yaml - ruamel.yaml.cmd rt 打破列表,如果包含长字符串或哈希
- mongodb - 当我反转条件时使用 $ 或重复值查询
- swift - 使用委托时从另一个类调用方法时出错
- c# - 如何正确重新加载将 MRTK 用于 Hololens2 的 Unity 场景?
- node.js - MongoDB - 从没有评估的节点执行存储的函数
- ios - 重新启动或发送到其他设备时反应本机 IOS 应用程序崩溃
- ios - 如何从函数内部更改全局变量的值?