Django 模型(model)中choices参数的使用

如果一个字段设置了choices属性,在模版中如果我要显示这个字段,比如用户的性别,只需设置2个参数选项。
在django模版系统就会将它默认解析为一个下拉菜单,这样对于一个静态的下拉菜单式很方便的。
**gender_choices参数定义一个元祖类型,里面有2个参数,一个是value值可以选择,如“M”,另外一个是显示的内容display_name,如“男”。

# models.py
from django.db import models

# Create your models here.

class Student(models.Model):
    '''学生表'''
    student_id = models.CharField(max_length=30, verbose_name="学号", default="")
    name = models.CharField(max_length=30, verbose_name="姓名", default="")
    gender_choices = (
        (u'M', u'男'),
        (u'F', u'女'),
    )
    gender = models.CharField(max_length=10, 
                              choices=gender_choices,  # 设置性别选项
                              verbose_name="性别",
                              default="")

    age = models.IntegerField(verbose_name="年龄",  default="")
  
    class Meta:
        verbose_name = "学生"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

编写完成后同步数据库数据

python manage.py makemigrations
python manage.py migrate

xadmin展示

在xadmin.py注册表信息,打开后台详情页面就可以看到下拉选项了

# adminx.py
import xadmin
from .models import Student

class DisplayStudent(object):
    # 显示的字段
    list_display = ('student_id', 'name', 'age',)

xadmin.site.register(Student, DisplayStudent)