ORM操作 数据库外键

Posted alex-hrg

tags:

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

创建外键:

from django.db import models

class usergroup(models.Model):
    uid = models.AutoField(primary_key=True)
    groupname = models.CharField(max_length=64,db_column="name")
    ctime = models.DateTimeField(auto_now_add=True)
    utime = models.DateTimeField(auto_now=True)

class userinfo(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=60)
    email = models.EmailField(max_length=60)
    user_type_choice = (
        (1,‘超级用户‘),
        (2,‘管理员‘),
        (3,‘普通用户‘),
    )
    user_type_id = models.IntegerField(choices=user_type_choice,default=3)
    usergroup = models.ForeignKey("usergroup",to_field=‘uid‘,default=1,on_delete=‘uid‘)

以上我们就在userinfo中创建了一个外键关联usergroup通过uid字段,且默认用户的组是uid为1的组。

查询:通过userinfo调用usergroup的信息,

  obj = models.userinfo.objects.first()

  obj.usergroup是一个usergroup类的对象 还可以继续调用 

  obj.usergroup.groupname  表示此用户的用户组是什么

 创建:创建一个有外键的行

models.userinfo.objects.create(
username = "root2",
password = ‘123‘,
email = ‘[email protected]‘,
user_type_id = 1,
usergroup_id = 2,
#usergroup = models.usergroup.objects.filter(uid=2).first(), 虽然这种方式也能创建,但多了一步操作我们都用上一行这种方式创建。
)










以上是关于ORM操作 数据库外键的主要内容,如果未能解决你的问题,请参考以下文章

django ORM的外键操作

python 外键用法 多对多关系 ORM操作 模板相关

django的数据库ORM进阶操作

ORM操作

Django_数据库——ORM对象操作

ORM查询总结版