zoukankan      html  css  js  c++  java
  • Python Web开发学习-Django(13)多对多关系

    多对多关系

    指的是关联的两个表中,任意一方表中的一条记录都与另一方表中的多条记录关联。

    例如,学生和社团的关系是多对多的关系,一个学生可以加入多个社团,一个社团允许多个学生加入。

    定义多对多关系

    多对多的关系使用models.ManyToManyField字段进行定义

    在modles.py文件内定义多对多关系表

    #多对多关系
    class shet(models.Model):                   #社团模型
        mc=models.CharField(max_length=8)       #社团名称
        def __str__(self):
            return self.mc 
    class stus(models.Model):                   #学生模型
        xm=models.CharField(max_length=8)       #学生姓名
        shets=models.ManyToManyField(shet)      #外键,关联社团
        def __str__(self):
            return self.xm

    保存后cmd进入项目,然后进行数据迁移:

     python manage.py makemigrations 

     python manage.py migrate 

     迁移完之后,现在还是一个空表,接下来就要对这两张表进行对象创建。

    多对一关系对象创建

     进入cmd交互页面:python manage.py shell,然后在shet表里创建三个社团,并保存

    from faqs.models import shet
    s1=shet.objects.create(mc="文学社")
    s2=shet.objects.create(mc="柔道社")
    s3=shet.objects.create(mc="舞蹈社")

    然后在stus表里创建学生对象,并关联到shet表

    from faqs.models import stus
    x1=stus.objects.create(xm="李爽")
    x1.shets.add(s1)

    查看是否添加成功: x1.shets.all() 

    创建社团并关联关系: x2.shets.create(mc="英语社") 

    也可以通过循环的方式查看:

    xlss = x2.shets.all()
    for a in xlss:
         print(a.id,a.mc)

     关注个人公众号:测试开发进阶之路

      

  • 相关阅读:
    App提交Appstore审核流程【转】
    程序员必须软件
    Linux的cron和crontab
    Git操作基本命令
    Python编码问题整理【转】
    Python读取ini配置文件
    RF+Jenkins构建持续集成
    RF接口测试本地环境部署
    Python建立SSH连接与使用方法
    永久修改python默认的字符编码为utf-8
  • 原文地址:https://www.cnblogs.com/zengxuejie/p/14075149.html
Copyright © 2011-2022 走看看