Django模型中字段属性选择怎么用

  介绍

这篇文章主要介绍了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模型中字段属性选择怎么用