Django 获取model的verbose_name

有时我们在存入数据库时需要获取字段的verbose_name属性,方便非开发人员理解。下面通过一个实例来看看,如何获取model中如verbose_name,app_label这类信息。

下面是一个在model中定义的类,我们通过django提供的shell来进行演示

class Disk(models.Model):
    server = models.ForeignKey(to='Server', to_field='id', on_delete=models.CASCADE)
    slot = models.CharField(verbose_name='槽位', max_length=32)
    pd_type = models.CharField(verbose_name='类型', max_length=32)
    capacity = models.CharField(verbose_name='容量', max_length=32)
    model = models.CharField(verbose_name='模型', max_length=64)

它有5个字段:其中server是与主机关联的外键。

实例化对象后,这些相关的信息都保存在_meta中:

>>> from api import models
>>> disk1 = models.Disk.objects.get(id=10)
>>> disk1._meta
<Options for Disk>

现在我们要查看slot的verbose_name,应该怎么查看呢?slot是disk中第2个字段:

>>> disk1._meta.fields[2].verbose_name
'槽位'

注意,这个下标计数仍然是从0开始的,id字段是0

>>> disk1._meta.fields[0].verbose_name
'ID'

同样的,我们还可以获取app_label属性:

>>> disk1._meta.app_label
'api'

那都有哪些options呢?

null, blank, choices,db_column, db_index, db_tablespace, default, editable, error_messages, help_text, primary_key, unique, unique_for_date,

unique_for_month,unique_for_year, verbose_name, validators等等。

上一篇:Classmethod, staticmethod, classonlymethod

下一篇:Flask 基础