instance.id
在通过管理页面上传图片时返回 None
。这个想法是将每个住宅的所有图像上传到不同的文件夹。这是我的代码:
模型.py
from django.db import models
import os
def get_image_path(instance, filename):
return os.path.join('photos', "residence_%s" % instance.id, filename)
# Create your models here.
class Residence(models.Model):
big_image = models.ImageField("Main Image",upload_to=get_image_path)
small_images = models.ImageField("Small Images",upload_to=get_image_path, blank=True, null=True)
settings.py
MEDIA_URL = '/media/'
编辑:如果我在添加模型后修改图像,它会起作用。
除非您实现自定义动态文件上传字段,否则您不能那样做。因为您尝试访问 instance.id
,但 instance
尚未保存并且没有 id
。
这里有一些资源可以帮助您实现您的目标:
我是一名优秀的程序员,十分优秀!