zoukankan      html  css  js  c++  java
  • django models的多对多关系

    models.py
    models里面的建表操作
    
    class Student(models.Model):
        name = models.CharField(verbose_name='老师名字',max_length=50)
    
        class Meta:
            db_table = 'student'
    
    
    class Teacher(models.Model):
        name = models.CharField(verbose_name='老师名字',max_length=50)
        # 多对对关系的建立
        student = models.ManyToManyField(Student,verbose_name='学生')
    
        class Meta:
            db_table = 'teacher'




    views.py teacher_obj = models.Teacher.objects.get(id=2) student_obj = models.Student.objects.get(id =1)

    # 谁和谁建立多对多关系,把models.ManyToManyField这个字段写给谁了,多对多关系就由谁建立 # 创建多对多关系,方法1 接收对象: teacher_obj.student.add(student_obj) # 创建多对多关系2, add方法可以接收主键id teacher_obj.student.add(1) # 删除多对多关系,由谁创建多多对多关系就由谁来删除 teacher_obj.student.clear() #清除老师对应多所有学生,批量操作 teacher_obj.student.remove(1) #指定某个学生进行删除,清除id为1的学生 teacher_obj.student.remove(student_obj) #也可以传入学生对象 # 重置多对多关系 #删除已有关系,重新创建新的多对多关系,接收学生id,列表里面是学生的主键id [1,2,3],老师重新换了一批学生 teacher_obj.student.set([1,2,3]) # 查询多对多关系 # 正向查询 # 获取这个老师有哪些学生 students = teacher_obj.student.all() print(students) # 反向查询 # 基于某个学生,去查这个学生有哪些老师 teachers = student_obj.teacher_set.all() print(teachers)

     

  • 相关阅读:
    字符串编码js第三方类库text-encoding
    SQL SERVER数据库权限分配
    天地图显示不全
    运用shapefile.js解析Shp文件
    基于Nginx搭建RTMP/HLS视频直播服务器
    centos pptp客户端 连接服务端
    zabbix如何配置微信报警
    zabbix使用web界面设置邮件报警
    linux系统如何查看某一进程的启动时间
    cobbler自动化安装Linux系统
  • 原文地址:https://www.cnblogs.com/liulilitoday/p/13630271.html
Copyright © 2011-2022 走看看