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(), 虽然这种方式也能创建,但多了一步操作我们都用上一行这种方式创建。
)

猜你喜欢

转载自www.cnblogs.com/alex-hrg/p/9781082.html