介绍
这篇文章主要介绍了Django模型中字段属性选择怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
今天设计模型时,用到选择了这个属性,用来限制用户做出选择的范围。比如说性别的选择(男或女)。
class 用户(AbstractUser): ,,… sex 才能=,models.CharField (verbose_name=& # 39;性别& # 39;,max_length=5,选择=((& # 39;男性# 39;& # 39;男& # 39;),(& # 39;女# 39;& # 39;女& # 39;)),默认=& # 39;男性# 39;)
选择接收一个元组(保证值不可变),同理每一个选项也是由一个元组(价值,display_name)构成。显而易见,display_name就是要在页面中展示的。
<>强如何取到值和displayname ? 强>
比如说实例一个用户对象用户,则如示用户。性别=价值,user.get_sex_display ()=display_name,通过属性取价值,通过get_属性_display()方法取display_name。
在模板中可以通过模板语言{{用户。性}}很简单地显示值,但不能直接调用get_属性_display()方法(模板毕竟是模板语言)
只能自定义过滤器,顺便提一句django中是不能直接调用函数的,可以通过自定义过滤器来实现(template_filters。py)
@register.filter (name=& # 39; displayname # 39;) def displayName (arg的值,,): return 才能eval (& # 39; value.get_& # 39; +参数+ & # 39;_display () & # 39;) # eval字符串方法了解一下
模板中使用{{用户| displayName: & # 39;性与# 39;}}就好了(用户是传入的变量)。
<强>补充知识:强> <强> django中选择字段获取对应字段值强>
如下所示:
class 区域(models.Model): Area_Level 才能=,( ,,,,(0,,u # 39;全国& # 39;), ,,,,(1),u # 39;省,直辖市& # 39;), ,,,,(2),u # 39;市,直辖市区& # 39;), ,,,,(3),u,区、县等& # 39;), ,,) 时间=areaname models.CharField (max_length=30,独特的=True,, verbose_name=& # 39;区域名称& # 39;) 时间=code models.CharField (max_length=20,空白=True,,默认=啊?,verbose_name=& # 39;区域代码& # 39;) 时间=parentid models.IntegerField (verbose_name=& # 39;父级id # 39;,, null=True) 时间=level models.IntegerField(选择=Area_Level verbose_name=& # 39;层级& # 39;,,null=True)
对象。get_level_display ()
引用>感谢你能够认真阅读完这篇文章,希望小编分享的“Django模型中字段属性选择怎么用”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
Django模型中字段属性选择怎么用