Python Django型号:使用外键中的字段

Python Django型号:使用外键中的字段,python,django,django-uploads,Python,Django,Django Uploads,我正在DJango做一个图像库项目,就是为了这个。我有一个名为Gallery的类和一个名为ImageGallery的类 名为gallery的类如下所示: class Gallery(models.Model): gallery = models.ForeignKey(Gallery, related_name="parent_gallery") title = models.CharField(max_length=200) folder = models.CharField(max_le

我正在DJango做一个图像库项目,就是为了这个。我有一个名为
Gallery
的类和一个名为
ImageGallery
的类

名为gallery的类如下所示:

class Gallery(models.Model):
 gallery = models.ForeignKey(Gallery, related_name="parent_gallery")
 title = models.CharField(max_length=200)
 folder = models.CharField(max_length=200) # ex: images/galleries/slugify(self.title)

class ImageGallery(models.Model):
 gallery = models.ForeignKey(Gallery, related_name="parent_gallery")
 title = models.CharField(max_length=200)
 image = models.ImageField(upload_to=self.gallery.folder)
好的,最后一行代码是我想知道的,它是否可能,或者是否有其他替代品

DJango admin
中,我希望能够为表
ImageGallery
添加记录,并在选择我要使用的
Gallery
时,将图像保存到
Gallery.folder
字段中指定的文件夹中

最好的解决办法是什么?我还没有写完这两门课,但我怀疑它们是否能像这样工作。提前感谢您。:-)

定义如下:

此属性提供了一种设置上载目录和文件的方法 名称,并可通过两种方式设置。在这两种情况下,都会传递值 到Storage.save()方法。。。上传到也可能是可调用的, 比如一个函数。这将被调用以获取上载路径, 包括文件名。此可调用项必须接受两个参数和 返回要传递给的Unix样式路径(带正斜杠) 存储系统。这两个论点是:

但是
self.gallery.folder
不是可调用的。您需要的是按照该示例中给出的行设置函数

def get_upload_path(instance, filename):
    return '{0}/{1}'.format(instance.gallery.folder, filename)
您的型号将更改为

image = models.ImageField(upload_to=get_upload_path)

哇,我不知道我怎么会错过。除此之外,这条路非常棒。为Django干杯!