获取除一个以外的所有字段

时间:2014-01-23 14:29:34

标签: python django

我目前通过model._meta.get_all_field_names()在django管理界面中显示我的字段。现在这个工作正常,但它也显示了数据集的主键(在我看来这看起来不太好)。

所以我的问题是:除了一个/多个之外,是否有“懒惰”方式获取所有字段?或者除了我不希望显示在list_display = array_of_fields_to_be_displayed

中的那个字段外,我是否必须编写每个字段?

1 个答案:

答案 0 :(得分:4)

您可以使用model._meta.fields属性列表Field实例:

[field.name for field in model._meta.fields if not field.primary_key]

每个Field都有primary_key属性(True如果该字段是主键)和name属性(以及该字段的名称)。

auth.models.User上的工作示例:

>>> [field.name for field in User._meta.fields if not field.primary_key]
['password', 'last_login', 'is_superuser', 'username', 'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'date_joined']

输出中没有id字段。可能是件好事。