Django:如何读取模型字段的db_column名称

时间:2011-03-09 08:44:38

标签: python django

我需要知道各种模型字段的db_column名称。在一些模型上,名称由“db_column ='foo'”显式设置,但大多数模型/字段的名称由Django自动生成。

如何从模型实例中检索所有字段的column_name?

2 个答案:

答案 0 :(得分:20)

有一个无证的_meta API,在整个Django中广泛用于内省模型。它将模型选项存储在类型上,并提供大约24种方法和属性来检查模型及其字段。您可以使用它来获取所有模型字段,然后从字段中获取列名称,因为它们指定了所有业务逻辑:

for field in Model._meta.fields:
    field.get_attname_column()

这将返回一个元组,该元组将包含模型上的属性(字段)名称和DB列名称。对于模型字段foo = models.IntegerField(db_column='bar'),这将返回('foo', 'bar')

答案 1 :(得分:0)

您可以使用原始SQL对数据库进行查询,并使用此问题的答案:

How to get field names when running plain sql query in django