Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
django:getattr函数(获取字段名)_Django_Getattr - Fatal编程技术网

django:getattr函数(获取字段名)

django:getattr函数(获取字段名),django,getattr,Django,Getattr,我无法使函数getattr工作。这是我的密码: print ConfigConsModel()._meta.get_all_field_names() #['codesectrepmodel', 'configCons', 'id'] modelInstance=ConfigConsModel() newAttrName1=getattr(modelInstance, "configCons") print newAttrName1 #empty -> PB 怎么了 modelInsta

我无法使函数getattr工作。这是我的密码:

print ConfigConsModel()._meta.get_all_field_names() #['codesectrepmodel', 'configCons', 'id']
modelInstance=ConfigConsModel()
newAttrName1=getattr(modelInstance, "configCons")
print newAttrName1 #empty -> PB
怎么了

modelInstance=ConfigConsModel()
这会将
modelInstance
初始化为
ConfigConsModel
类的新(空)实例

newAttrName1=getattr(modelInstance, "configCons")
这条线相当于

newAttrName1=modelInstance.configCons

它不获取属性的名称,而是获取属性的值。这当然是空的。

#empty->PB这是什么意思?PB==问题?什么问题?空字符串,它不会打印您期望的内容?Yes PB表示问题,newAttrName1应包含属性“configCons”的名称,而不是空字符串。no,
newAttrName1
包含
modelInstance.configCons
的值,该值明显为空,因为您刚刚将
modelname
初始化为空
ConfigConsModel
newAttrName1
将包含您作为第二个参数提供的名称的字段的值(而不是名称)。对不起,我误解了此函数的用法。。。解决了的!如果我想得到modelinstance.customer.name怎么办?@Jack:你的确切意思是什么?我的意思是,你得到的模型字段是对的?如果一个模型有ID、Name、Phone等字段,这项技术将正常工作,但是如果我的模型有一个forghin键,比如Customer,该怎么办?我可能想知道客户的名字?在正常情况下(model.customer.name),我会这样做,但如果我像value=getattr(modelinstance,“customer.name”)或value=getattr(modelinstance,“customer\uu name”)那样给它,它可能不会工作,如何处理这个场景?@Jack:你必须做
getattr(getattr(modelinstance,“customer”),“name”)