django query获取model所有字段的verbose_name值
时间: 2023-09-01 18:08:30 浏览: 93
可以通过以下代码获取Django model所有字段的`verbose_name`值:
```python
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=50, verbose_name='姓名')
age = models.IntegerField(verbose_name='年龄')
email = models.EmailField(verbose_name='电子邮件')
# 获取所有字段的verbose_name值
verbose_names = [field.verbose_name for field in MyModel._meta.get_fields()]
print(verbose_names)
# 输出:['ID', '姓名', '年龄', '电子邮件']
```
在代码中,我们首先定义了一个模型`MyModel`,它包含了三个字段`name`、`age`和`email`,并为每个字段设置了不同的`verbose_name`值。然后,我们通过`MyModel._meta.get_fields()`获取了该模型的所有字段。最后,我们通过列表推导式将每个字段的`verbose_name`值保存到`verbose_names`列表中,并打印出来。
需要注意的是,由于Django自动生成的`id`字段没有设置`verbose_name`,因此在输出结果中对应的值为`ID`。如果要排除该字段,可以修改列表推导式为:
```python
verbose_names = [field.verbose_name for field in MyModel._meta.get_fields() if field.name != 'id']
```
阅读全文