Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 下划线的使用:q.choice_set.all()_Python_Django_Django Models - Fatal编程技术网

Python 下划线的使用:q.choice_set.all()

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

我在做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(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的链接,您将看到本节非常感谢,我现在明白了,谢谢你,我喜欢它,特别是当你改变了一本相关名字的书,它是神奇的,谢谢你,非常感谢,我现在明白了,谢谢你,我喜欢它,特别是当你改变了一本相关名字的书,它是神奇的,谢谢你