Example difference between related_name and related_query_name

 

For example, a

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,'male'),
        (2,'female'),
    )
    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.object male.b_set.all()
  # obj.object female.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.object male.b.all()
  # obj.object female.a.all()

 Revisiting past examples: reverse lookup alias substitution

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'
Reverse: lowercase table name user_set ===>xxx
## related_query_name = 'xxx'
反向:user_set==>xxx_set

Recommended use:
 ut = models.ForeignKey('UserType',related_name='users')

    obj.users



  

 

 

 

 

 

 

 

 

  

 

 

 

 

---End of recovery content---

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325331230&siteId=291194637