我正在制作自定义django模板标签。
基本版本:
import models
@register.filter
def intensity1(value):
return models.CHOICES_FOO[value]
它只返回model.FOO
列表
但实际上我有几个不同的列表,models.CHOICES_BAR
,models.CHOICES_BAZ
所以我想做一个更通用的函数,传递value
和arg
,它指定要引用的变量列表。
@register.filter
def intensity2(value, arg):
return models.arg[value]
arg = "INTENSITY_CHOICES"
print (intensity2(value, arg))
但当然这不起作用。失败module 'models' has no attribute 'arg'
有没有办法说出类似的东西?或者我会更好地将所有这些选择保留在dict
中,然后通过参考密钥来检索它们?
答案 0 :(得分:2)
您可以使用getattr
按名称获取财产:
return getattr(models, arg)[value]