📜  如何在models.py中获取foregine kew字段 - Python(1)

📅  最后修改于: 2023-12-03 14:52:47.230000             🧑  作者: Mango

如何在models.py中获取foreign key字段 - Python

在 Django 中,外键是用于创建数据模型关系的重要工具。外键允许您通过关联到另一个模型来引用其他模型的数据。在使用外键的模型中,常常需要访问与之相关的外键信息,本文将介绍如何在 models.py 中获取 foreign key 字段。

我们将使用以下示例模型:

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

    def __str__(self):
        return self.title

在上面的示例中,Book 模型包含一个包含外键关联的 Author 模型。现在我们可以查看如何在 Book 中获取 Author 外键信息。

访问外键信息

要获取外键信息,我们将使用 related_name 选项。 该选项允许指定反向关系的名称,以便从关联模型进行访问。

这是我们如何在 Book 模型中设置 related_name 参数:

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='books')

在上面的示例中,我们将 related_name 参数设置为 'books',指定外键字段的名称。

现在我们可以使用 books 属性访问所有与 Book 模型相关的 Author 记录,如下所示:

>>> author = Author.objects.create(name='John Smith')
>>> book = Book.objects.create(title='How to Code', author=author)
>>> author.books.all()
<QuerySet [<Book: How to Code>]>

在上面的代码中,我们创建一个 Book 记录,并检索 Associated Author 对象的所有书籍。

另外,我们也可以通过 Book 模型访问 Author

>>> book.author
<Author: John Smith>
结语

以上介绍了如何在 Django 中获取 foreign key 字段。除了上面的方法,还有很多其他方式可以访问外键信息,具体根据具体情况而定。希望这篇文章能对您有所帮助,以后在访问 foreign key 字段时也能轻松应对。