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)

     

  • 相关阅读:
    CodeForces
    CodeForces
    CodeForces 718C && HDU 3572 && Constellation
    CodeForces
    USACO 5.4 tour的dp解法
    10.22~10.28一周经典题目整理(meeting,BZOJ4377,POJ3659)
    codeforces 724D
    codeforces 724C
    hdu5909 Tree Cutting
    hdu5822 color
  • 原文地址:https://www.cnblogs.com/liulilitoday/p/13630271.html
Copyright © 2011-2022 走看看