# 添加学生class Addstu1(APIView): def post(self,request): data = request.data data['img'] = '123456' # img直接写成了死的数据 print(data) ss=Stuerializers1(data=data) if ss.is_valid(): ss.save() return Response({'code':200,'message':'添加成功'}) return Response({'code':10020,'message':'添加失败'})最重要的序列化部分
# 多对多添加学生class Stuerializers1(serializers.Serializer): name = serializers.CharField(max_length=32) img = serializers.CharField(max_length=255) cid = serializers.ListField() # ListField 可以添加多个 def create(self,data): cid = data.pop('cid') #cid并不是我stu里的字段 所以弹出cid
ss = Stu.objects.create(**data) #添加stu表 ss.duo.set(cid) #添加stu 外键 dou return ss模型
# 课程class Kc(Base,models.Model): name = models.CharField(max_length=32) price = models.DecimalField(max_digits=9,decimal_places=2) # sss_set = class Meta: db_table='kc'# 学生表class Stu(Base,models.Model): name = models.CharField(max_length=32) img = models.CharField(max_length=255) #related_name='sss' 起个别名 当反向添加的时候他就相当于课程表里的外键了 sss_set #可以直接代替 stu表里的dou duo = models.ManyToManyField(to='Kc',related_name='sss')# class Meta: db_table='stu'有错误请指出