Skip to main content
 首页 » 编程设计

python之django instance.id=None 上传图片时

2025年05月04日38Free-Thinker

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。

这里有一些资源可以帮助您实现您的目标: