django instance.id=None 上传图片时

1 python django django-models

instance.idNone通过管理页面上传图像时返回。这个想法是将每个住宅的所有图像上传到不同的文件夹。这是我的代码:

模型.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)
Run Code Online (Sandbox Code Playgroud)

设置.py

MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)

编辑:如果我在添加模型后修改图像,它会起作用。

wen*_*isa 6

除非您实现自定义动态文件上传字段,否则您不能这样做。因为您尝试访问instance.id,但instance尚未保存并且没有id.

以下是一些可帮助您实现目标的资源: