文件名称:自定义字段的标注-libmodbus源码解析
文件大小:7.37MB
文件格式:PDF
更新时间:2024-07-14 01:47:15
5.4自定义字段的标注 在管理后台的编辑表单中,各个字段的标注根据模型中字段的名称生成。生成方式很简单:把下划线替换成 空格,再把第一个字母变成大写。例如,Book模型中 publication_date字段对应的标注是“Publication date”。 然而,根据字段名称并不是总能生成好的标注,因此有时需要自定义。自定义标注的方式是为模型字段指定 verbose_name参数。例如,下述代码把 Author.email字段的标注改为“e-mail”(中间有个连字符): class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(blank=True, verbose_name='e-mail') 修改之后,再次访问编辑作者表单,你会发现显示的是新标注。注意,除非始终应该为大写(如 "USA state"),否则不应该把 verbose_name值的首字母设为大写。如果需要,Django 会自动把首字母变成大写, 在不需要大写的地方,则直接使用 verbose_name的值。 5.5自定义 ModelAdmin 类 目前我们所做的改动,添加 blank=True、null=True和 verbose_name,修改的其实都是模型层,只是碰巧管理 后台有用到,还未涉及管理后台自身。 除此之外,Django 管理后台也提供了丰富的选项,可以定制处理具体模型的方式。这些选项在 ModelAdmin 类中,这些类包含特定管理后台实例中特定模型的配置。 5.5.1自定义修改列表 我们将指定 Author模型的修改列表中显示的字段,以此说明如何定制管理后台。默认情况下,修改列表显示 的是各个对象的 __str__()方法返回的结果。在第 4 章,我们为 Author对象定义了 __str__()方法,显示名 字和姓: class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(blank=True, verbose_name ='e-mail') def __str__(self): return u'%s %s' % (self.first_name, self.last_name) 因此,Author对象的修改列表中显示各个作者的名字和姓,如图 5-7所示。 74 - 第 5 章 Django 管理后台