Python Django保存元数据-[Errno 2]没有这样的文件或目录:

Python Django保存元数据-[Errno 2]没有这样的文件或目录:,python,django,Python,Django,我有个问题。我对路径有问题: [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_n

我有个问题。我对路径有问题:

[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资源获取。

我对.path也有同样的问题。我的Django不是本地的,而是在线的。看看你的代码。你的行为
url=self.image.url;full_path=os.listdir(url)
,意思是“给我这个图像的url,然后尝试列出url的内容。这完全没有意义。使用
.path
获取图像的路径,然后使用
os.path.basename
获取该路径的目录。