举例,一
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举例区别
原文:https://www.cnblogs.com/catherine007/p/8997955.html