Contents
Django模型如何添加enum枚举类型的字段
在django的model中,有的时候需要定义枚举类型的字段,比如一个Person类,我们会让选择性别,男和女,还有很多类似的场景,选择所在地区,选择是和否等等。比如下图
如果要选择的值同时也是一个需要维护的model,比如上面说的地区,可能值比较多,另外有可能会不停地更新变化,这时最好是利用django的one-to-many和many-to-many来做,在表单上的效果类似,都是会有一个下拉框的选项;但是更多的时候这个下拉选择的项是比较固定和少量的,这个时候就要用到models包下的各类xxxField类构造方法中的choices这个参数,基本上各类的model Field都支持这个参数,参数值是一个嵌套的元组,元组的每一项也是一个元组 代表一个枚举值,格式是 (枚举值,枚举显示的文字)
给个例子 一下明了
1
2
3
4
5 distance_bigger_better_choice = (
(1, '是'),
(0, '不是')
)
distance_bigger_better = models.IntegerField(verbose_name="相似距离是否越大越像", choices=distance_bigger_better_choice)
这个就是上面图片效果的代码。