(十三)Django Rest framwork序列化器(3)-关联字段的序列化器

  • 初始创建
class InterfaceModelSerializer(serializers.ModelSerializer):
    #自定义字段会将自动生成的覆盖掉

    # 指定参考哪一个模型类
    class Meta:
        #指定模型类
        model = Project2s
        #指定模型类那些字段来生成序列化期
        #设置需要的字段fields
        fields = "__all__"

自动创建

InterfaceModelSerializer():
id = IntegerField(label='ID', read_only=True)
name = CharField(help_text='接口名称', label='接口名称', max_length=200, validators=[<UniqueValidator(queryset=Project2s.objects.all())>])
tester = CharField(help_text='测试人员', label=' 测试人员', max_length=50)
desc = CharField(allow_blank=True, allow_null=True, help_text='发布应用', label='简要描述', required=False, style={'base_template': 'thtml'})
project = PrimaryKeyRelatedField(help_text='所属项目', label='所属项目', queryset=Projects.objects.all())

  • 数据库模型中的外键字段,默认会生成(PrimaryKeyRelatedField)序列化器,序列化输出的值值外键的ID值


    image.png
  • 数据库模型中的外键字段设置为StringRelatedField,此字段将被序列化为关联对象字符串表达形式(project中的str方法)
    project = serializers.StringRelatedField(label='所属项目')
  • 数据库模型中的外键字段设置为,SlugRelatedField此字段将被序列化为关联字典的指定字段
    project = serializers.SlugRelatedField(label='所属项目', slug_field='tester',queryset=Projects.objects.all())


    image.png
  • 数据库模型中的外键字段设置为,所关联项目序列化器
    project = ProjectSerializer(label='所属项目' ,read_only=True)


    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。