我们假设我们有两个模型, 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博士没有提及类似于我所问的任何内容。
答案 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