Django ORM 一对多表的创建
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,前面已经学习了在Django里面,如何对单表进行增删改查询。下面学习一下如果存在外键约束的情况下,如何创建。例1models.pyfrom django.db import modelsclass U
千家信息网最后更新 2026年11月01日Django ORM 一对多表的创建
前面已经学习了在Django里面,如何对单表进行增删改查询。下面学习一下如果存在外键约束的情况下,如何创建。
例1
models.py
from django.db import modelsclass UserGroup(models.Model): uid = models.AutoField(primary_key=True) caption = models.CharField(max_length=32,unique=True) ctime = models.DateTimeField(auto_now_add=True, null=True) uptime = models.DateTimeField(auto_now=True, null=True) class UserInfo(models.Model): username = models.CharField(max_length=32,blank=True,verbose_name='用户名') password = models.CharField(max_length=60, help_text='pwd') email = models.CharField(max_length=60) test = models.EmailField(max_length=19,null=True,error_messages={'invalid': '请输入密码'}) # user_group_id 数字 user_group = models.ForeignKey("UserGroup",to_field='uid') # (uid,catption,ctime,uptimew) user_type_choices = ( (1, '超级用户'), (2, '普通用户'), (3, '普普通用户'), ) user_type_id = models.IntegerField(choices=user_type_choices,default=1)创建外键约束的关键语句就是一条命令。
user_group = models.ForeignKey("UserGroup",to_field='uid') # (uid,catption,ctime,uptime)注意几点:
to_field 指向另外一个类的主键
默认情况下,他会创建级联删除的约束,也就是说如果我删除user_group里面的一行数据,userInfo表里和这个uid数据关联的行都会自动删除;我们可以通过 on_delete=models.SET_NULL来禁止删除
在UserInfo的表里,他会自动创建一个新的字段 user_group_id 作为外键的字段,而不是我们类里面定义的user_group。但是有趣的是,我们在程序里面可以直接在userInfo的对象里面引用 user_group对象。
数据库里面创建的表,注意字段名称
下面看个调用的实例
例2. 可以看见我能够通过row.user_group.caption来直接获取用户组表的信息,相当于执行了一个left join的查询操作
views.py
def user_info(request): if request.method == "GET": user_list = models.UserInfo.objects.all() group_list = models.UserGroup.objects.all() return render(request, 'user_info.html', {'user_list': user_list, "group_list": group_list})user_info.html
添加用户
用户列表
- {% for row in user_list %}
- {{ row.username }} | {{ row.user_group.caption }} 删除 | 编辑 {% endfor %}
用户
字段
数据
普通
对象
情况
表里
学习
查询
有趣
一行
也就是
也就是说
会创
信息
关键
可以通过
名称
命令
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
耶加雪菲
互联网科技有限公司
互联网与科技
互联网科技工作委员会主任
互联网品科技
互联网科技有限公司图片
北京互联网络科技有限公司
百单互联网科技有限公司
广州互联网络科技有限公司
易通互联网络科技有限公司
互联网科技论坛
互联网 新科技
镁科技互联网资讯平台
互联网科技与管理
内蒙古九一互联网科技
用友工业互联网科技发展
国大互联网教育科技有限公司薪资
张家口科技产业互联网平台
互联网高科技绘画
科技互联网龙头
科技制造互联网公司
碳银互联网科技
齐家互联网科技有限公司
互联网科技公司名称
开启互联网科技时代小说
现代科技和互联网有关系吗
互联网科技如何创业
北京市互联网新科技
互联网金融金融科技