首页 > 其他 > 详细

Django 中 related_name/related_query_name 的区别

时间:2020-03-29 22:59:28      阅读:75      评论:0      收藏:0      [点我收藏+]

related_name/related_query_name 一般出现在有 Foreignkey  或者 Manytomang 字段的时候

一 一般查询

class Department(models.Model):
   title = models.CharField(verbose_name=‘部门,max_length=32)

class UserInfo(models.Model):
   depart = models.ForeignKey(verbose_name=部门,to=Department)
   user = models.CharField(verbose_name=‘用户,max_length=32)
   pwd = models.CharField(verbose_name=‘用户, max_length=32)

以前查询

正向查询---用点
 user_object = UserInfo.objects.get(id=1)
 user_object.depart
反向查询---表名小写+set
 depart_object = Department.objects.get(id=9)
 depart_object.userinfo_set.all()

二  如果是 related_query_name

class Department(models.Model):
 title = models.CharField(verbose_name=部门,max_length=32)

class UserInfo(models.Model):
 depart=models.ForeignKey(verbose_name=‘部门,to=Department,related_query_name="u")
 user = models.CharField(verbose_name=‘用户,max_length=32)
 pwd = models.CharField(verbose_name=‘用户, max_length=32)

再查询

正向查询---用点
 user_object = UserInfo.objects.get(id=1)
 user_object.depart
反向查询---表名小写+set
 depart_object = Department.objects.get(id=9)
 depart_object.u_set.all()

三 如果是 related_name的话

class Department(models.Model):
 title = models.CharField(verbose_name=部门,max_length=32)

class UserInfo(models.Model):
 depart=models.ForeignKey(verbose_name=部门,to=Department,related_name="u")
 user = models.CharField(verbose_name=用户,max_length=32)
 pwd = models.CharField(verbose_name=用户, max_length=32)

再查询

正向查询---用点
 user_object = UserInfo.objects.get(id=1)
 user_object.depart
反向查询---表名小写+set
 depart_object = Department.objects.get(id=9)
 depart_object.u.all()

 

Django 中 related_name/related_query_name 的区别

原文:https://www.cnblogs.com/a438842265/p/12595622.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!