我目前正在通过 django 管理界面显示我的字段model._meta.get_all_field_names()。现在这工作正常,但它也显示了数据集的主键(在我看来这看起来不太好)。
所以我的问题是:是否有一种“懒惰”的方式来获取除一个/多个字段之外的所有字段?或者我是否必须写除我不想显示的每个字段之外的每个字段list_display = array_of_fields_to_be_displayed
您可以使用model._meta.fields作为Field实例列表的属性:
[field.name for field in model._meta.fields if not field.primary_key]
Run Code Online (Sandbox Code Playgroud)
每一个 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']
Run Code Online (Sandbox Code Playgroud)
id输出中没有字段。大概是好事。