我正在尝试为用户上传图片时创建动态路径。它的工作原理如下:
查看:
photo = Photo(...)
photo.save()
photo.original.save(filename, content)
型号:
album = models.ForeignKey(Album)
original = models.ImageField(upload_to="photos/%s/o" % str(album.id), max_length=200)
但是当我尝试这样做时,Django说没办法。
Exception Value:
'ForeignKey' object has no attribute 'id'
如何以这种方式访问ForeignKey对象的模型成员?
感谢。
答案 0 :(得分:2)
使用回调(可调用):https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.FileField.upload_to
def fancy_path(instance, filename):
return 'fancy_path/file_%s.xml' % self.instance.album.id
original = models.ImageField(upload_to=fancy_path, max_length=200)