Django框架模型——关联查询

Django模型的关联查询方式

SQL语句中有很多的关联查询:外关联、内关联、自关联等。而这些都是在进行多表之间的查询。一次你首先需要建立多张表,并建立他们之间的联系。

表之间的关系
关系 moels语法 注释
一对一 models.OneToOneField 在两种表中的任意一个添加即可
一对多 mdoels.ForeignKey 在多类中添加外键
多对多 models.ManyToManyField 在两种表中任意一个添加即可

表之间的关系很好设定,只需要添加对应的字段即可,但是有几点需要注意!

1、关系型字段可以在两张表中同时设置,但是当两张表中的数据都为空时,两个关系型字段必须有一个可以为空,否则会发生类“死锁”的情况。两张表插入数据的前提是另一张表中要有已存在的数据。所以咋实际所运用中最好只设置一个。

2、设置完表之间的关系后,在表的查询过程中需要区别对待。是否设置了关系字段会影响到数据的操作。


1、一对一的关联查询

创建好类后,需要在两个类中的任意一个类中定义关联字段,该字段的相关属性,可以为空值,但是在关联另一张表中的数据时,必须要一一对应不可重复。

models代码:


from django.db import models

# Create your models here.

# 定义学生类
class Student(models.Model):
	Name = models.CharField(max_length=10)
	Age = models.IntegerField(null=True, blank=True)

    # 定义将来显示数据对象时显示的内容
	def __str__(self):
		return self.Name

# 定义学生卡类
class Card(models.Model):
	Num = models.CharField(max_length=11)

	# 定义一对一关系字段
	Stu = models.OneToOneField('Student')

    # 定义将来显示数据对象时显示的内容
	def __str__(self):
		return self.Stu.Name + '---' + self.Num

代码分析:

在应用的models模块中定义如上数据模型之后,需要先进行迁移才能够在数据库中产生对应的表。并保存数据。

生成迁移文件:python manage.py makemigrations

迁移到数据库:python manage.py migrate

完成迁移后,就可以进入交互式环境中进行数据的操作了。


交互式环境中代码示例:


                
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值