Django学习手册 - ORM 外键

Posted anec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django学习手册 - ORM 外键相关的知识,希望对你有一定的参考价值。

Django 外键操作

关键语法: 

  models.ForeignKey("UserGroup",to_field="gid",default=1,on_delete=models.CASCADE)

参数:

  "UserGroup"            #外键另外一张表

  to_field="gid"           #另外一张表的字段

  on_delete=models.CASCADE    #因为不加这个会报错相关(https://www.cnblogs.com/phyger/p/8035253.html

 

创建数据表格:

from django.db import models

# Create your models here.

class userinfo(models.Model):
    uname = models.CharField(max_length=32,db_column="用户名")
    pwd = models.CharField(max_length=32,db_column="密码")
    email = models.EmailField(null=True,db_column="邮箱")
    usergroup = models.ForeignKey("UserGroup",to_field="gid",default=1,on_delete=models.CASCADE)

class UserGroup(models.Model):
    gid = models.AutoField(primary_key=True)
    gname = models.CharField(max_length=32)
    test = models.CharField(max_length=32,null=True)
    g = models.ForeignKey("Group", to_field="id",null=True,on_delete=models.CASCADE)

class Group(models.Model):
    grouplist = models.CharField(max_length=255)

 

在每个字段中都录入数据:

技术分享图片

usergroup表 外键 g_id

技术分享图片

userinfo表 外键 usergroup_id

技术分享图片

 

跨表查询:原理--(对象(对象(对象)))

obj2 = models.userinfo.objects.filter(uname="root").first()
print(obj2.usergroup.g.grouplist)

 

以上是关于Django学习手册 - ORM 外键的主要内容,如果未能解决你的问题,请参考以下文章

Django学习手册 - ORM 数据表操作

Django 之 ORM表之间的外键关联与多对多

Django中ORM外键和表的关系(Django编程-4)

Django--ORM 多表查询

django ORM的外键操作

python django中的orm外键级联删除