choice
1模型表:Student表,写接口应该选择继承哪个视图类 2推荐使用自动生成路由的方式(继承ViewSetMixin及它的子类) 3但是目前来说,先实现功能即可(至于选择哪个,慢慢体会) 4choice的使用 -在模型类中使用 sex = models.SmallIntegerField(choices=((1, '男'), (2, '女'), (3, '未知')), default=1) -在视图类中,在序列化类中 -get_字段名_dispaly()的方法,该方法获得choice字段对应的数据 (就可以直接显示出 男 女 未知 不然只能显示出数字)
视图类代码:
from rest_framework importserializers from app01.models importStudent classStudentSerializer(serializers.ModelSerializer):
#重写sex字段的方法 sex=serializers.CharField(source='get_sex_display') classMeta: model =Student fields='__all__'
3.get_字段名_dispaly()方法的实现:
#django在脚本中运行 importos if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day01.settings") importdjango django.setup() from app01 importmodels student_list=models.Student.objects.all() for student instudent_list: print(student.sex) #只要写了choice,配好关系了,该对象就会有个 get_字段名_display()的方法 print(student.get_sex_display())