verbose_name和verbose_name_plural

Django:如何admin管理界面中显示中文model名称

在定义django模型时,我喜欢使用驼峰命名法,比如定义一个叫“BookReviewWeibo”的model,代表“微读书”。但是,django的admin管理界面在显示这个model的名称时,会将这个驼峰式的名称拆分为独立的单词,并最后一个单词使用复数。例如“BookReviewWeibo”这个model,在admin中会被显示为“book review weibos”,十分难看。

使用django的国际化接口解决此问题会比较麻烦,其实大可不必这样。models.Model类的内部类Meta,有两个特殊的选项:verbose_name和verbose_name_plural。顾名思义,verbose_name为model提供了一个更容易让人阅读的名称,而verbose_name_pluralze则是这个名称的复数形式。一般情况下,我会使用一个中文的verbose_name,由于中文不区分单复数,因此通常会将同一个中文字符串赋值给verbose_name和verbose_name_plural。比如,对于前面的“BookReviewWeibo”类,可以写成:

1 class BookReviewWeibo(Weibo, BookReview):    
2         
3     class Meta:
4         verbose_name = '微读书'
5         verbose_name_plural = '微读书'

如果不设置Meta内部类的这两个选项,则admin中的效果如下图:

 

设置Meta内部类的这两个选项后,则admin中的效果如下图:

 

posted @ 2018-05-04 21:41  whitesky-root  阅读(3063)  评论(0编辑  收藏  举报