[Django]models中定义的choices 字典在页面中显示值

问题:

在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>

obj.get_字段名称_display 。

要想使用好框架,还是要多看文档才行。

本文出自 “orangleliu笔记本”?博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/40268093

时间: 2024-12-28 21:29:02

[Django]models中定义的choices 字典在页面中显示值的相关文章

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承.(4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承. 分析以上程序示例,主要疑惑点是“子类继承父类的成员变量,父类对象是否会实例化?私有成员变量是否会被继承?被继承的成员变量

在C++中定义接口类,在C#中实现

网上大部分都是C#调用C++的接口,很少有C++调用C#的,更少有在C++中定义接口类,在C#中实现. 千辛万苦,终于找到一个网址:http://www.tuicool.com/articles/AFjY7j 简单翻译一下, class __declspec(dllexport) CSimpleClass { public: int value; CSimpleClass(int value) : value(value) { } ~CSimpleClass() { printf("~CSimp

MVC中 _ViewStart _Layout Index三个页面中的加载顺序

MVC学习中忽然想到一个问题.. 在访问一个Index.cshtml页面时, MVC的加载顺序是怎么样的呢? 首先说下我的结论 1. _ViewStart.cshtml 2. Index.cshtml 3. _Layout.cshtml 经过实验认为 http://www.byywee.com/page/M0/S957/957632.html 给出的结论是错误的. 若有不同意见的道友请留言辩驳..不胜荣幸 论述我的观点和实验过程: 经过了解 _ViewStart.cshtml页面指定谁是模板页

SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?

本文出处:http://www.cnblogs.com/wy123/p/6704619.html 问题背景 在写SQL Server存储过程中,如果存储过程中定义了临时表,有些人习惯在存储过程结束的时候一个一个显式地删除过程中定义的临时表(drop table #tName),有些人又没有这个习惯,对于不明真相的群众或者喜欢思考的人会问,存储过程中定义的临时表,最后要不要主动删除,为什么?或者说是不是存储过程结束的时候删除临时表更加规范?不止一个人问过这个问题了,说实在话,本人之前确实不清楚,只

web.config中namespace的配置(针对页面中引用)

1,在页面中使用强类型时: @model GZUAboutModel @using Nop.Admin.Models//命名空间(注意以下) 2,可以将命名空间提到web.config配置文件中去,此时的引用变为: @model GZUAboutModel//页面中只需要这一行代码 2.1在web.config配置文件中需要这样做. 第一步,namespace中添加节点 <namespaces> <add namespace="Nop.Admin.Models" /&

在.cpp文件中定义变量,在.h文件中extern

在cocos2d-x 的D:\phoneclient\cocos2dxlib\cocos\base\CCValue.h 文件中,发现如下代码: 全局查找之后,在D:\phoneclient\cocos2dxlib\cocos\base\CCValue.cpp 文件中,找到变量的定义: extern int a;//这是声明aint a;//这是定义a正常情况下都是h声明cpp定义. 声明和定义是不同的,声明可以有多次,定义只能有一次.h文件可能被很多cpp文件包含,所以里面只能写声明不能写定义,

在properties.xml中定义变量,在application.xml中取值问题

如果为application.xml中的变量赋默认值,同时又在properties.xml中变量赋值,而加载后是取不到properties.xml中的值的问题. 解决这个问题需要加上黑体部分配置: <bean id="sysConfiguration" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">        <property na

12月16日 增加一个购物车内product数量的功能, 自定义method,在helper中定义,计算代码Refactor到Model中。

仿照Rails实战:购物网站 教材:5-6 step5:计算总价,做出在nav上显示购物车内product的数量. 遇到的?: 1. <% sum = 0 %> <% current_cart.cart_items each do |cart_item| %> <% if cart_item.product.price.present? %> <% sum = sum + cart_item.quantity * cart_item.product.price %

如何在 HTML5 页面中嵌入音频?如何在 HTML5 页面中嵌入视频?

HTML 5 包含嵌入音频文件的标准方式,支持的格式包括 MP3.Wav 和 Ogg: <audio controls>    <source src="jamshed.mp3" type="audio/mpeg">     Your browser does'nt support audio embedding feature.  </audio> HTML 5 包含嵌入音频文件的标准方式,支持的格式包括 MP3.Wav 和 O