我定义了一个User类,它(最终)继承自models.Model。我想获取为该模型定义的所有字段的列表。例如,phone\u number=CharField(max\u length=20)。基本上,我想检索从字段类继承的任何内容
我想我可以通过利用inspect.getmembers(model)来检索这些字段,但是它返回的列表不包含这些字段。看起来Django已经掌握了这个类,并添加了它所有的魔法属性,去掉了实际定义的内容。所以我怎样才能得到这些字段?它们可能有一个函数用于检索它们以用于其内部目的
Django 1.8及更高版本:
您应该使用获取字段():
[MyModel中f的f.name.\u meta.get\u fields()]
从Django开始,不推荐使用get\u all\u field\u names()方法
1.8和将在1.10中删除
上面链接的文档页面提供了一个完全向后兼容的get\u all\u field\u names()实现,但对于大多数目的,前面的示例应该可以正常工作
Django 1.8之前的版本:
model.\u meta.get\u all\u field\u names()
这应该能奏效
这需要一个实际的模型实例。如果您只有django.db.models.Model的子类,那么您应该调用myproject.myapp.models.MyModel.\u meta.get\u all\u field\u names()