Django 的 search_fields 和多对一关系

0 投票
1 回答
1540 浏览
提问于 2025-04-16 06:53

举个例子,我有两个模型:Household(家庭)和Person(个人):

from django.db import models
class Household(models.Model):
    address = # ...
class Person(models.Model):
    household = models.ForeignKey(Household)
    name = # ...

我该如何在Django的后台管理系统中,通过个人的名字来搜索家庭呢?

1 个回答

7

正如在关于search_fields的文档中提到的:

你还可以通过“跟随”符号的查找API,在外键(ForeignKey)或多对多字段(ManyToManyField)上进行相关查找:

search_fields = ['foreign_key__related_fieldname']

举个例子,如果你有一篇博客文章,并且这篇文章有一个作者,那么下面的定义就可以让你通过作者的电子邮件地址来搜索博客文章:

search_fields = ['user__email']

这也应该可以“反向”工作,就像你提到的例子那样。

search_fields = ['person__name']

撰写回答