Python Django调用另一个模型';s将_上传到模型内部
假设我们有两个模型,A和B。模型A有一个Python Django调用另一个模型';s将_上传到模型内部,python,django,Python,Django,假设我们有两个模型,A和B。模型A有一个upload\u路径,在它里面,我还想在同一路径上保存模型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 p
upload\u路径,在它里面,我还想在同一路径上保存模型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\u to=random\u path
,但它会给我一个不同的路径。因此,我希望在modelA中定义modelB的upload_to
。甚至不确定这是否可能。Django文档没有提到任何类似于我所问的内容。这很简单。为此,请使用\u meta
。在您的案例中,您可以使用get_field方法获取模型的字段,如imageA
。然后使用对象符号访问该字段的任何属性
upload_to_attr = ModelName._meta.get_field('foo').upload_to
更通用:
attr_value = ModelName._meta.get_field('foo').attr_name
很抱歉,但是getupload=A.。\u meta.get\u字段(imageA.upload\u to
在B模型中给我一个“'A'没有'\u meta'成员”错误。有什么额外的步骤可以让它工作吗?你使用的是哪个版本的django?参数imageA将用引号括起来。我使用的是最新版本。imageA在我的代码中有引号,我忘了包括它们。如果它在model.py中,我是否应该导入它?好的,这是我的VS代码中的一个linting错误。它运行正常。