像
这样的东西my_model.data_dict['my_field']
哪个会为您提供该字段的当前值?需要这样的东西来与我的其他代码接口。
答案 0 :(得分:3)
您可能还想查看queryset上的values方法。它将返回任何查询的字典,而不是通常的模型实例。
https://docs.djangoproject.com/en/1.3/ref/models/querysets/#values
(来自docs)
>>> Blog.objects.filter(name__startswith='Beatles').values()
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]
答案 1 :(得分:1)
这很棘手,但你可以这样做:
def model2dict(obj):
return dict([(field, getattr(obj, field)) for field in obj._meta.get_all_field_names()])
所以你可以访问值:
model2dict(my_model)['my_field']
答案 2 :(得分:1)
他们有一个__dict__
属性(这是一个标准属性):my_model.__dict__['my_field']
但是,执行此类访问的标准方法是getattr
:getattr(my_model, 'my_field')
。
请参阅:http://docs.python.org/reference/datamodel.html#new-style-and-classic-classes。同时查找__slots__
以了解没有此属性的类。
正如Jeremy在上面所说,任何使用django寻找此事的人都可以考虑使用queryset.values()
(https://docs.djangoproject.com/en/dev/ref/models/querysets/#values)。