快速提问。我正在尝试使用变量访问模型的一个字段。
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中有类似的东西:)
干杯
答案 0 :(得分:37)
您可以使用pythons getattr函数来执行此操作。将字段名称作为属性传递。
getattr(model, fieldtoget)
由于fieldtoget是一个变量,因此它是动态的。
您可以使用setattr以相同的方式设置它。