zoukankan      html  css  js  c++  java
  • django学习——通过get_FOO_display 查找模型中的choice值

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

    如果我们想要在HTML中显示choice中的字段值,采用{{ obj.level }} 得到的只是数字0,1,2,3 ,如果我们想要的到’全国’、’省、直辖市’、等字段,需要采用get_FOO_display方法:

    {{ obj.get_level_display}}

    choice参数
    choices = (
    (1,'male'),
    (2,'female'),
    (3,'others')
    )
    gender = models.IntegerField(choices=choices)
    """
    1.如果我存的是上面元组中数字会怎么样
    2.如果我存的数字不在元组范围内又会怎样
    1.数字没有对应关系 是可以存的
    """

    from app01 import models
    user_obj = models.Userinfo.objects.filter(pk=4).first()
    print(user_obj.username)
    print(user_obj.gender)
    # 针对choices字段 如果你想要获取数字所对应的中文 你不能直接点字段
    # 固定句式   数据对象.get_字段名_display()  当没有对应关系的时候 该句式获取到的还是数字
    print(user_obj.get_gender_display())
    record_choices = (('checked', "已签到"),
                  ('vacate', "请假"),
                  ('late', "迟到"),
                  ('noshow', "缺勤"),
                  ('leave_early', "早退"),
                  )
    record = models.CharField("上课纪录", choices=record_choices, default="checked", 
        
    score_choices = ((100, 'A+'),
                 (90, 'A'),
                 (85, 'B+'),
                 (80, 'B'),
                 (70, 'B-'),
                 (60, 'C+'),
                 (50, 'C'),
                 (40, 'C-'),
                 (0, ' D'),
                 (-1, 'N/A'),
                 (-100, 'COPY'),
                 (-1000, 'FAIL'),
                 )
    score = models.IntegerField("本节成绩", choices=score_choices, default=-1)
    

    数据对象.get_字段名_display() 获取值

  • 相关阅读:
    display、box-sizing,position有哪些值?
    css伪类与伪元素
    HTML基础(一)——一般标签、常用标签和表格
    C#处理猜拳问题(非窗体)
    C#语言基础——结构体和枚举类型
    C#语言基础-类——string增加内容
    C#解决验证码问题
    C#ArrayList集合——小例题
    C#语言基础——特殊集合
    http请求访问响应慢问题解决的基本思路
  • 原文地址:https://www.cnblogs.com/jhpy/p/11899082.html
Copyright © 2011-2022 走看看