UserInfo 和 UserType 两个表关联, UserInfo 的外键连 UserType 的主键拿到 UserInfo 的所有信息, 就可以拿与 UserInfo 相关联的 UserType 的数据
result = model.UserInfo.object.all()
与 UserInfo 有关联的 UserType 表:
- for obj in result:
- print(obj.name,obj,age,obj.ut_id,obj.ut_title)
- #ut_id 是 UserType 表的 id,ut_title 是 UserType 中的 title
- # 如果 UserType 表中, 也有 Foreigkey 字段, 也可以继续跨表, 接着点就行
- eg:
在 model 中:
- from django.db import models
- class Foo(models.Model):
- caption = models.CharField(max_length=32)
- class UserInfo(models.Model):
- #主键会自行创建, 也可自己创建, nid 为字段
- nid = models.BigAutoField(primary_key=True)
- username = models.CharField(max_length=32)
- password = models.CharField(max_length=64)
- #增加列, 在增加是, 可以定义为空, 也可定义为默认值
- age = models.IntegerField(null=True)
- # age = models.IntegerField(default=1)
- #外键关联 UserGroup 表, 代表 UserGroup 的一行数据
- usergroup = models.ForeignKey("UserGroup",null=True)
- class UserGroup(models.Model):
- #隐藏 id,Django 的 ORM 会加的
- title = models.CharField(max_length=32)
- fo = models.ForeignKey(Foo,null=True)
- model
在 views 中:
from models 同级目录文件 import models
- def test(request):
- result = models.UserInfo.objects.all()
- print(result)
- for i in result:
- print(i.username,i.usergroup.title,i.usergroup.fo.caption)
- views
在 print(i.username,i.usergroup.title,i.usergroup.fo.caption) 中, 有跨一张表的, 和两张表的
i.username: 拿的本表的
i.usergroup.title 跨一张表的
i.usergroup.fo.caption 跨两张表的
来源: http://www.bubuko.com/infodetail-2515618.html