fields=('b_name')classBModelSerializer(serializers.ModelSerializer): b_name = BModelSerializer()classMeta: model=A#这里导入A会把A里面的所有名称空间存在的都进行导入fields=('b_name')#方法二#通过自定义字段classBModelSerializer(serializers.ModelSerializer): b_name = serializers.SerializerMethodField...
hcomment = serializers.CharField(label='描述信息', max_length=200, required=False, allow_null=True)# 英雄关联到的书籍对象,此处必须指定关联到的对象queryset或者指定参数 read_only=True# hbook = serializers.PrimaryKeyRelatedField(queryset=BookInfo.objects.all())hbook = serializers.PrimaryKeyRelated...
class StudentModelSerializer(serializers.ModelSerializer): class Meta: model = Student fields = ['id', 'name', 'age', 'sex'] 1. 2. 3. 4. 默认情况下,所有的模型的字段都将映射到序列化器上相应的字段。 如果你希望在模型序列化器中使用默认字段的一部分,你可以使用fields或exclude选项来执行此操作...
BookModelSerializer() 可以看出自动帮我们生成了校验值,但是有些值不太符合我们要求 如果想修改字段限制,有两种方式 第一种、显示指明字段 class BookModelSerializer(serializers.ModelSerializer): # 显示指明字段, bread = serializers.IntegerField(max_value=100, min_value=20) sms_code = serializers.CharField...
fields=('id','name','info','cls_stu')# 学生序列化器classStudentSerializer(serializers.ModelSerializer):classMeta:model=Comment fields=('id','name','clsinfo') 但是这样会出现一个问题: 这样序列化Class对象的时候会把 所有与Clas对象关联的student对象的也序列化起来,就算是我们用IntegerField或者String...
exclude = ['publish','price'] # 排除哪些字段 Ⅴ read_only_fields -- 序列化显示的,写入时为null 查询时显示,写入时为空 serializer.py模型类序列化 classMeta:#写一个内部类model=models.Book#该序列化类跟哪个表建立关系fields='__all__'#序列化全部字段read_only_fields=['price','publish']#指定...
继承自serializer.Modelserializer 通过class Meta指定元数据 models=参照的模型类名 fields=(需要为模型类中的那些字段生成),all表示所有字段 exclude=(不需要为模型类中的那些字段生成) extra_kwargs={字段名:选项参数}可以为生成的序列化器字段增加约束
UPDATE: 假如不加上exclude(‘grade’)在前端接收到了grade的值,如果前端不做处理,直接返回修改,ModelViewSet在update函数里进行serializer验证的时候会直接报错”grade值必须唯一”,因为最终保存的方法里可以手动指定grade(并且部分方法需要grade对象而不是grade_id)因此前端并不需要返回grade值。
raise serializers.ValidationError("必须要有⽺驼")return value class AuthorSerializer(serializers.ModelSerializer):# 常规⽅式对字段进⾏校验, 将 model 的字段在这⾥重复写⼀遍 name = serializers.CharField(max_length=30, label="姓名", validators=[check_name]) # validators ⾃定义校验⽅法...
required=False)bcomment=serializers.IntegerField(label='评论量',required=False)image=serializers....