zoukankan      html  css  js  c++  java
  • django 多对多反序列添加


    # 添加学生
    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'

    有错误请指出




  • 相关阅读:
    【CF932E】Team Work
    【ZJOI2011】看电影
    【CQOI2011】放棋子
    【HAOI2010】计数
    【HNOI2009】有趣的数列
    【ZJOI2010】排列计数
    【FJOI2016】建筑师
    【USACO10 OPEN】三角形计数
    【HNOI2012】排队
    【HNOI2008】越狱
  • 原文地址:https://www.cnblogs.com/pp8080/p/11828629.html
Copyright © 2011-2022 走看看