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() 获取值

  • 相关阅读:
    计算机网络
    JAVA基础--面试用
    springboot-高级(一)
    SQL语句(一)
    spring cloud
    ruoyi后台管理系统分析(六)----system包
    ruoyi后台管理系统分析(五)---quartz包
    Java基于opencv实现图像数字识别(一)
    Leetcode : eImplement strStr
    二叉树的前序、中序、后序遍历迭代实现
  • 原文地址:https://www.cnblogs.com/jhpy/p/11899082.html
Copyright © 2011-2022 走看看