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选项来执行此操作...
它包括create() 和 update()简单默认实现。 fromrest_frameworkimportserializersclassProductSerializer(serializers.ModelSerializer):classMeta:model=Product fields='__all__'# exclude = ('created', )# read_only_fields = ('email', ) 指定只读字段# extra_kwargs = {'created': {'write_only': True}...
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']#指定...
name=serializers.CharField() # price=serializers.DecimalField() price=serializers.CharField() author=serializers.CharField() publish=serializers.CharField() # views.py class BookView(APIView): def get(self,request,pk): book=Book.objects.filter(id=pk).first() ...
serializers.py内容 classStudentSerializer(serializers.Serializer):""" 完整的序列化类内部包含四部分的内容 1、序列化转换的字段声明 2、反序列化的校验器,即校验前端传入的字段 3、反序列化模型操作的方法,create和update方法 """id=serializers.IntegerField()name=serializers.CharField()age=serializers.Integer...
raise serializers.ValidationError("必须要有⽺驼")return value class AuthorSerializer(serializers.ModelSerializer):# 常规⽅式对字段进⾏校验, 将 model 的字段在这⾥重复写⼀遍 name = serializers.CharField(max_length=30, label="姓名", validators=[check_name]) # validators ⾃定义校验⽅法...
title = serializers.CharField(max_length=32, validators=[my_validate])pub_time = serializers.DateField()category = serializers.CharField(source="get_category_display", read_only=True) # 只序列化⽤ # 因为前端传的是数字,所以需要重写 post_category = serializers.IntegerField(write_only=True) ...