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())

 

posted @ 2020-11-11 15:13  1024bits  阅读(1025)  评论(0编辑  收藏  举报