related_name和related_query_name举例区别
Posted 老王的农场
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了related_name和related_query_name举例区别相关的知识,希望对你有一定的参考价值。
举例,一
class UserInfo(models.Model): nickname = models.CharField(max_length=32) username = models.CharField(max_length=32) password = models.CharField(max_length=64) gender_choices = ( (1,‘男‘), (2,‘女‘), ) gender = models.IntegerField(choices=gender_choices)
ralated_query_name
class U2U(models.Model): g = models.ForeignKey(‘UserInfo‘,ralated_query_name=‘a‘) b = models.ForeignKey(‘UserInfo‘,ralated_query_name=‘b‘) # ralated_query_name # obj.对象男.b_set.all() # obj.对象女.a_set.all()
ralated_name
class U2U(models.Model): g = models.ForeignKey(‘UserInfo‘,ralated_name=‘a‘) b = models.ForeignKey(‘UserInfo‘,ralated_name=‘b‘) # ralated_name # obj.对象男.b.all() # obj.对象女.a.all()
回顾以往例子:反向查找别名替换
class UserType(models.Model): title = models.CharField(max_length=32) class User(models.Model): username = models.CharField(max_length=32) ut = models.ForeignKey(‘UserType‘,related_name=‘xxx‘) ## related_name=‘xxx‘:
反向:小写表名user_set ===>xxx
## related_query_name = ‘xxx‘
反向:user_set==>xxx_set
推荐用:
ut = models.ForeignKey(‘UserType‘,related_name=‘users‘)
obj.users
---恢复内容结束---
以上是关于related_name和related_query_name举例区别的主要内容,如果未能解决你的问题,请参考以下文章
使用继承和ForeignKey时Django syncdb冲突related_name
如何在抽象模型中的ManyToMany字段中设置related_name?
在 django admin 中使用 related_name 配置多对多字段
related_name和related_query_name举例区别