Python 下划线的使用:q.choice_set.all()
我在做Django 编写第一款Django应用程序,第2部分 在“2.4.4使用API”一节中。Python 下划线的使用:q.choice_set.all(),python,django,django-models,Python,Django,Django Models,我在做Django 编写第一款Django应用程序,第2部分 在“2.4.4使用API”一节中。 如果有人能向我解释一下下划线在这段代码中是如何工作的q.choice\u set.all()。让我们考虑这两个模型: class Author(models.Model): name = models.Charfield(max_lenght=100) class Book(models.Model): author = models.ForeignKey(Auth
如果有人能向我解释一下下划线在这段代码中是如何工作的
q.choice\u set.all()。让我们考虑这两个模型:
class Author(models.Model):
name = models.Charfield(max_lenght=100)
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
name = models.Charfield(max_lenght=100)
说明:
我们有一些作者,每个作者都有一些书。
但是如果我们想得到某个作者的所有书籍呢?
假设我们想要所有由Sara写的书:
my_author = Author.objects.get(name='Sara')
这就是魔法!Django将自动为这个名为book\u set
的对象生成反向关系,该对象包含Sara编写的所有书籍。
命名规则很简单,\u set
。
所以,你可以通过写这行来获得这些书:
sara_books = my_author.book_set.all()
很好,不是吗?等等,可能会更好!
book\u set
对我来说不是一个好名字,我想要一个更人性化的名字!
您可以通过向图书
模型的作者
字段添加相关的\u名称
来轻松更改:
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='her_books') # you can name it anything you want
name = models.Charfield(max_lenght=100)
然后,你可以得到像这样的书:
sara_books = my_author.her_books.all()
现在它更容易让人阅读:)希望你能理解。它很简单。让我们考虑这两个模型:
class Author(models.Model):
name = models.Charfield(max_lenght=100)
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
name = models.Charfield(max_lenght=100)
说明:
我们有一些作者,每个作者都有一些书。
但是如果我们想得到某个作者的所有书籍呢?
假设我们想要所有由Sara写的书:
my_author = Author.objects.get(name='Sara')
这就是魔法!Django将自动为这个名为book\u set
的对象生成反向关系,该对象包含Sara编写的所有书籍。
命名规则很简单,\u set
。
所以,你可以通过写这行来获得这些书:
sara_books = my_author.book_set.all()
很好,不是吗?等等,可能会更好!
book\u set
对我来说不是一个好名字,我想要一个更人性化的名字!
您可以通过向图书
模型的作者
字段添加相关的\u名称
来轻松更改:
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='her_books') # you can name it anything you want
name = models.Charfield(max_lenght=100)
然后,你可以得到像这样的书:
sara_books = my_author.her_books.all()
现在它更容易让人阅读:)希望您能理解。遵循之前同一教程中关于数据库API的链接,您将看到本节遵循之前同一教程中关于数据库API的链接,您将看到本节非常感谢,我现在明白了,谢谢你,我喜欢它,特别是当你改变了一本相关名字的书,它是神奇的,谢谢你,非常感谢,我现在明白了,谢谢你,我喜欢它,特别是当你改变了一本相关名字的书,它是神奇的,谢谢你