📅  最后修改于: 2023-12-03 14:52:47.230000             🧑  作者: Mango
在 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 字段时也能轻松应对。