要重命名Django模型上传的图像,您可以通过以下步骤来实现:
upload_to
参数指定文件名模板。例如:from django.db import models
from django.utils.timezone import now
class MyModel(models.Model):
image = models.ImageField(upload_to='images/%Y/%m/%d/')
在这个例子中,upload_to
参数指定了上传文件夹的路径,其中%Y
、%m
和%d
分别表示年、月和日。
from django.core.files.storage import default_storage
from django.utils.timezone import now
def upload_image(image_file):
# 获取当前时间
now_str = now().strftime('%Y/%m/%d')
# 构造文件名
filename = f'images/{now_str}/{image_file.name}'
# 保存文件
default_storage.save(filename, image_file)
# 返回文件名
return filename
在这个例子中,upload_image
函数接受一个图像文件对象,并将其保存到指定的文件夹中。函数返回保存后的文件名。
<img src="{{ my_model.image.url }}" alt="{{ my_model.image.name }}">
在这个例子中,my_model
是一个MyModel
实例,image
字段包含了上传的图像文件。{{ my_model.image.url }}
显示图像的URL,{{ my_model.image.name }}
显示图像的名称。
通过这种方式,您可以在Django模型上传的图像中使用自定义的文件名模板,并在视图和模板中使用这些文件名。
领取专属 10元无门槛券
手把手带您无忧上云