【发布时间】:2022-01-24 11:25:13
【问题描述】:
这是我的自定义图片上传功能
def upload_image(file, dir_name, filename):
try:
target_path = '/static/images/' + dir_name + '/' + filename
path = storage.save(target_path, file)
return storage.url(path)
except Exception as e:
print(e)
这是我的模型
class MenuOptions(models.Model):
name = models.CharField(max_length=500, null=False)
description = models.CharField(max_length=500, null=True)
image_url = models.ImageField(upload_to=upload_image())
def __str__(self):
return f'{self.name}'
我想使用我的upload_image 函数上传图像,如您所见,它采用3 个参数file、dir_name 和file_name。 如何在我的 model.ImageField() 中传递这些参数 另外,我想将 image_url 存储到我的数据库中,就像 upload_image 函数返回的那样,它将文件存储在 DB 中还是 URL 中?
【问题讨论】:
-
您不需要在
upload_image函数中使用.save()图像。它应该只返回应该保存的路径。 -
我正在将它上传到谷歌存储,所以我将不得不调用 .save() 方法。
标签: python-3.x django django-models django-views django-forms