Django模型字段由变量

时间:2012-07-13 04:22:47

标签: python django

快速提问。我正在尝试使用变量访问模型的一个字段。

class ExampleModel(models.Model):
      the_field = models.CharField()
      the_field_two = models.CharField()

如何动态访问该字段?我试过了:

model = ExampleModel.objects.get(pk=1)
fieldtoget = 'the_field'
test_var = model[fieldtoget]

但它似乎没有用,有什么想法我会怎么做?

更新:我想我会更新我的问题。我正在尝试编写一个函数(作为更大函数的一部分),它不仅可以获取字段的值,还可以从变量fieldname更新它。例如:

model[fieldtoget] = 'yo'
model.save()

在PHP中,您可以使用{}包装器 - $model{$fieldtoget} - 例如,对于动态变量名称希望在python中有类似的东西:)

干杯

1 个答案:

答案 0 :(得分:37)

您可以使用pythons getattr函数来执行此操作。将字段名称作为属性传递。

getattr(model, fieldtoget)

由于fieldtoget是一个变量,因此它是动态的。

您可以使用setattr以相同的方式设置它。