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

    一对一关系

    一对一关系指关联的两个表中,任意一方表中的一条记录只与另一方表中的一条记录关联

    例如:学生和校园卡之间的关系是一对一关系,一个学生只能有一张校园卡,一张校园卡只能属于一个学生。

     定义一对一关系

    一对一的关系使用models.OneToOneField字段进行定义

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

    #一对一关系
    class stus3(models.Model):                      #学生模型3
        xm=models.CharField(max_length=8)           #学生姓名        
        def __str__(self):
            return self.xm
    class cards(models.Model):                      #校园卡模型3
        no=models.CharField(max_length=8)           #卡号        
        stu=models.OneToOneField(stus3,on_delete=models.CASCADE,null=True)         #外键,关联学生模型3
        def __str__(self):
            return "no=%s;stu_xm=%s" %(self.no,self.stu.xm)

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

     python manage.py makemigrations 

     python manage.py migrate 

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

    一对一关系对象创建

     进入cmd交互页面:python manage.py shell,然后在stus3表里创建2个学生并关联

    from faqs.models import cards,stus3
    x1=stus3.objects.create(xm="张展")
    x2=stus3.objects.create(xm="张离")
    #将这两个学生与cards表进行关联
    c1=cards.objects.create(stu=x1,no="0001")
    c2=cards.objects.create(stu=x2,no="0002")

    关联之后查看是否关联成功

    更改关系

    如果0001的想要修改为其他的学生,可以这样操作,直接将c1.stu=x3就改变了原来c1.stu=x1的关系了。

    删除关系

    将关联对象设置为None,可删除关系。

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

      

  • 相关阅读:
    JS字符串去重
    svn回退到某一版本
    WebStorm格式化代码4个空格设置
    DevExpress中 的DataGrid每一行根据其类型显示控件的种类
    各大系统刷新DNS缓存方法
    Kali Linux中前十名的Wifi攻击工具
    CentOS远程执行漏洞
    判断是否移动端的几种方法
    笔记
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/zengxuejie/p/14081361.html
Copyright © 2011-2022 走看看