Django在模型中调用了另一个模型的upload_to

时间:2017-06-22 08:51:09

标签: python django

我们假设我们有两个模型, A B 。模型 A 具有upload_to路径,在其中,我还想在同一路径上保存模型 B 中的字段。这就是我想要做的事情:

def random_path(instance, filename):
    #creating random path each time it's called

class A(models.Model):
    imageA = models.ImageField(upload_to=random_path) # Randomly generated path
    def create_documentfiles(self):
        imageB = # Image 
        saveImageB = DocumentImage(imagefile=imageB)
        saveImageB.imagefile.upload_to = # Should be same path as imageA
        saveImageB.save()

class B(models.Model):
    imagefile = models.ImageField()

我可以在 B 模型中定义upload_to=random_path,但它会给我一个不同的路径。所以,我想在模型 A 中定义模型 B upload_to。不确定它是否可能。 Django博士没有提及类似于我所问的任何内容。

1 个答案:

答案 0 :(得分:2)

这很简单。为此目的使用_meta。您可以使用get_field方法获取模型的字段,例如imageA。然后使用对象表示法访问该字段的任何属性。

upload_to_attr = ModelName._meta.get_field('foo').upload_to

更通用:

attr_value = ModelName._meta.get_field('foo').attr_name