Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以在getattr()中为相关模型传入变量吗?_Python_Django - Fatal编程技术网

Python 我可以在getattr()中为相关模型传入变量吗?

Python 我可以在getattr()中为相关模型传入变量吗?,python,django,Python,Django,所以这是可行的: field_name = 'msrp' price = getattr(mymodel.related_model, field_name) 但我想为“相关_模型”传入一个变量,类似于: field_name = 'msrp' x = related_model_name price = getattr(mymodel.x, field_name) 显然,这是行不通的,但它表明了我想要完成的目标。有没有办法以某种方式传入变量作为相关模型名称的占位符?price=geta

所以这是可行的:

field_name = 'msrp'

price = getattr(mymodel.related_model, field_name)
但我想为“相关_模型”传入一个变量,类似于:

field_name = 'msrp'
x = related_model_name

price = getattr(mymodel.x, field_name)
显然,这是行不通的,但它表明了我想要完成的目标。有没有办法以某种方式传入变量作为相关模型名称的占位符?

price=getattr(mymodel.related\u model,'msrp')没有多大意义,因为这意味着相当于
price=mymodel.related\u model.msrp
。但是,如果
相关模型的名称存储在变量中,则可以使用获取相关模型对象:

x = related_model_name

price = getattr(mymodel, x).msrp

为什么不
getattr(mymodel,x).msrp
?感谢您的回复。我应该更准确一些。在上面的示例中,我已经将'msrp'作为字符串变量传递,因此如果我遵循您的示例,我现在对'msrp'也有同样的问题。我将编辑我的示例以反映这一点。@sc_props:然后您可以使用
getattr
两次。请参见编辑。我没想到会这样嵌套getattr()!因此,将示例变量反转为字段_name='msrp',效果很好。非常好的解决方案,谢谢。
x = related_model_name
msrp = field_name

price = getattr(getattr(mymodel, x), msrp)