Python Django型号:使用外键中的字段
我正在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
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干杯!