【发布时间】:2017-04-27 04:54:13
【问题描述】:
我有一个包含 112 个字段的巨大注册表。对于特定搜索,我想比较 17 个字段并将颜色分配给变量“clrSelected”。 我的代码是:
reg = Regisration.objects.filter('some condition').order_by("name")
for r in reg:
if r.name=='abc': clrSelected='#fff'
if r.type=='1': clrSelected='#000'
if r.appl=='10': clrSelected='#c1ff51'
if r.code=='': clrSelected='#60c5f7'
if r.qlty=='first': clrSelected='#f99334'
...
...
只有一个 if 条件需要着色。这意味着要比较的字段(来自字典)将根据用户选择而改变。 我想从这样的字典中访问字段名称
flds = {'1':'name', '2':'type', '3':'appl', '4':'code', '5':'qlty',...}
然后像这样使用它
if r.flds['1']=='abc': clrSelected='#fff'
我如何使用上述字段。我正在使用 django 1.4 & python 2.7
【问题讨论】:
-
您的问题是:'如何从变量名动态访问字段?'?您是否有任何理由使用字典作为存储字段名称而不是列表的结构?
-
是的..我想动态访问字典中的字段。要访问的字段取决于用户选择。
-
正如答案所说,使用
getattr动态访问该字段。你不需要字典。此处的列表同样适用。
标签: django python-2.7 dictionary django-models django-1.4