Django:如何读取模型字段的 db_column 名称
我想知道不同模型字段的数据库列名。在一些模型中,列名是通过“db_column='foo'”明确设置的,但大多数模型/字段的名字是Django自动生成的。
我该如何从模型的实例中获取所有字段的列名呢?
2 个回答
0
你可以直接用原始的SQL语句在数据库上查询,然后用这个问题的答案来帮助你:
32
在Django中,有一个不太被文档详细说明的 _meta
API,很多地方都在用它来查看模型的内部信息。它会把你的模型选项存储在类型上,并提供大约二十个方法和属性,让你可以检查你的模型及其字段。你可以用它来获取所有模型字段,然后从这些字段中获取列名,因为它们定义了所有的业务逻辑:
for field in Model._meta.fields:
field.get_attname_column()
这个操作会返回一个元组,里面包含模型的属性(字段)名称和数据库的列名。比如,对于一个模型字段 foo = models.IntegerField(db_column='bar')
,这个操作会返回 ('foo', 'bar')
。