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中的效果如下图: