django中related_name和related_query_name区别和用途

看表:

class Author(models.Model):
    name = models.CharField(verbose_name='姓名', max_length=50)
    age = models.IntegerField(verbose_name='年龄')

class Book(models.Model):
    name = models.CharField(verbose_name='书名', max_length=100)
    author = models.ForeignKey(Author, verbose_name='作者', related_name='bs', related_query_name='b')

那该怎么查询呢??

Author.objects.filter(b__name='learn_python')
#通过related_query_name查询书名为learn_python的作者

author = Author.objects.get(pk=1)
author.bs.all()
通过related_name来查询该作者所有的书

看懂例子自然就明白这两个的区别的用法了

你可能感兴趣的:(django,外键,orm)