Django模型是否有一个包含所有当前值的数据dict?

2024-05-01 22:11:09 发布

您现在位置:Python中文网/ 问答频道 /正文

有点像

my_model.data_dict['my_field']

这将为您提供该字段的当前值?需要这样的东西来与我的其他代码接口。在


Tags: 代码fielddatamodelmydict
3条回答

您可能还想看看queryset上的values方法。它将为任何查询返回字典,而不是通常的模型实例。在

https://docs.djangoproject.com/en/1.3/ref/models/querysets/#values

(摘自文件)

>>> Blog.objects.filter(name__startswith='Beatles').values()
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]

这很棘手,但你可以这样做:

def model2dict(obj):
   return dict([(field, getattr(obj, field)) for field in obj._meta.get_all_field_names()])

因此您可以访问以下值:

^{pr2}$

它们有一个__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)。在

相关问题 更多 >