1. 程式人生 > >Django]models中定義的choices 字典在頁面中顯示值

Django]models中定義的choices 字典在頁面中顯示值

docs ice googl code 域名 字段 foo quest article

在django的models.py 中,我們定義了一些choices的元組,類似一些字典值,一般都是下拉框或者單多選框,例如 0對應男 1對應女等

class Area(models.Model):
Area_Level = (
(0, u‘全國‘),
(1, u‘省、直轄市‘),
(2, u‘市、直轄市區‘),
(3, u‘區、縣等‘),
)

areaname = models.CharField(max_length=30,unique=True, verbose_name=‘區域名稱‘)
code = models.CharField(max_length=20,blank=True, default="", verbose_name=‘區域代碼‘)

parentid = models.IntegerField(verbose_name=‘父級id‘, null=True)
level = models.IntegerField(choices=Area_Level,verbose_name=‘層級‘, null=True)
在頁面中有個table要把表中的字段顯示出來,如果數據庫中存儲的是0就顯示 全國, 1就顯示省、直轄市 類似:

名稱 代碼 層級 上級地區 操作
全國 全國(0) 刪除
北京 bj 省、直轄市(1) 全國 刪除

django中有沒有這種方法可以讓我們直接使用呢?


解決:
我們可以先google 看下,第一個結果:

http://stackoverflow.com/questions/4320679/django-display-choice-value

這裏就是答案了,一個是用django自帶的方式,一個是使用if來判斷(這種顯然大家都不喜歡)

django的文檔在這裏:

https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display

在頁面上我們只要這麽寫就可以直接把字典的值顯示出來了

<td>{{ obj.get_level_display }}({{ obj.level }})</td>

---------------------
作者:orangleliu
來源:CSDN
原文:https://blog.csdn.net/orangleliu/article/details/40268093

Django]models中定義的choices 字典在頁面中顯示值