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