mysql与django中的外键

作者: 海上牧云l | 来源:发表于2016-12-31 01:36 被阅读384次

django外键包括OneToOneField,ForeignKey,ManyToManyField,使用可以与其他Model形成联系,互相调用,十分强大。最近在学习使用mysql数据库,发现mysql对django的外键有独特的表示方法。

from django.db import models
from django.contrib.auth.models import User
class Author(models.Model):
    belong_to = models.OneToOneField(to=User, related_name='profile')
    name = models.CharField(max_length=20)
    def __str__(self):
        return self.name
class Book(models.Model):
    belong_to = models.ForeignKey(to=Author, related_name='book') 
   name = models.CharField(max_length=50)
    content = models.TextField()
    def __str__(self):
        return self.name
class Tag(models.Model):
    book = models.ManyToManyField(to=Book, related_name='tags')
    name = models.CharField(max_length=10)
    def __str__(self):
        return self.name```
为了方便表示,简单的建了这些Model。
####首先是一对一关系
![](https://img.haomeiwen.com/i2222847/c31132baeac74d72.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
author中belong_to字段变为belong_to_id字段,与auth_user的id相对应。
####多对一

![](https://img.haomeiwen.com/i2222847/9e767def355a157d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
与一对一差不多,也是通过id与其作者相关联
####多对多

![
![](https://img.haomeiwen.com/i2222847/2bfc7f5feec90508.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
](https://img.haomeiwen.com/i2222847/e667bca048535c71.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这种最为特殊,自身表中没有与book关联,而是建立了一张新的表来表示其关系。

了解mysql中对应的表示方法,通过调用id,就可以得到想要的数据

相关文章

  • mysql与django中的外键

    django外键包括OneToOneField,ForeignKey,ManyToManyField,使用可以与其...

  • Django模型(三)

    知识要点: 表关系的实现 一对多表关系 在Mysql中一对多是通过外键实现的,在django模型中通过Foreig...

  • Django 与 MySQL 对接

    Django 与 MySQL 对接 环境和目标 mysql直接安装在Mac下 django在virtualenv中...

  • django外键约束——on_delete相关的问题

    在最新的django框架中,models设置外键约束时,on_delete是必填项,所以创建外键时如何设置on_d...

  • django模型中关联关系查询

    写的很乱,写的时候思路不够清晰 django中模型多对多关系 ForeignKey外键约束,在django中是表示...

  • mysql中的外键

    什么是外键? 在一个表中存在的另一个表的主键称为此表的外键 为什么要使用外键呢? 为了让一张表记录的数据不要太过冗...

  • Django基础:开发中关于外键设置

    django开发中关于外键设置 我们建模型的时候会用到ForeignKey 而由于外键的约数会导致一些保存 所有我...

  • django 2.0外键处理

    Django2.0里model外键和一对一的on_delete参数 在django2.0后,定义外键和一对一关系的...

  • django:__init__() missing 1 requ

    使用 django 2.0 开发过程中,发现在 models.py 文件使用外键( ForeignKey ),会报...

  • 09_MySQL多表 & JDBC

    MySQL多表 外键 主表主键和从表外键 ==(从表的外键引用主表的主键)== 从表的外键类型必须和主表的主键类型...

网友评论

    本文标题:mysql与django中的外键

    本文链接:https://www.haomeiwen.com/subject/gdjvvttx.html