gpt4 book ai didi

python - Django ImageField.path 在 save 方法中返回没有 upload_to 的路径

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:49 24 4
gpt4 key购买 nike

Django ImageField.pathsave 方法中返回没有 upload_to 的路径:

# models.py
class Message(models.Model):
image = models.ImageField(upload_to='mes-img', null=True, blank=True)

def image_tag(self):
if self.image:
# Printing "/base-dir/media/mes-img/image.png"
print(self.image.path)
# src=/media/mes-img/image.png
return mark_safe('<img src="{0}" width="100" />'.format(self.image.url))

def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
# Returns "/base-dir/media/image.png", should return "/base-dir/media/mes-img/image.png"
print(self.image.path)
# Returns "/media/image.png", should return "/media/mes-img/image.png"
print(self.image.url)

操作系统:Windows 10 64位

Python 3.6.4

Django 2.0.2

最佳答案

upload_to 被传递给 Storage.save() 方法,检查 docs 这部分。因此,只有在保存图像后,upload_to才会添加到路径中。尝试这样的事情:

 def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
super().save(force_insert, force_update, using, update_fields)
print(self.image.path)
print(self.image.url)

super().save() 将自动保存图像实例。

关于python - Django ImageField.path 在 save 方法中返回没有 upload_to 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49186323/

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