首页 > 解决方案 > 我可以将搜索框添加到 Django 管理员添加页面吗?

问题描述

在 Django 3.0 应用程序中,我有一个捐赠者模型,其中包含捐赠者国会选区的外键:

# models.py
class Donor(models.Model):
    """A class to represent an individual donor"""
    
    name = models.CharField(
        help_text = "Donor's name"
    )
    district = models.ForeignKey(
        District,
        help_text = "Donor's congressional district"
    )

class District(models.Model):
    """A class to represent a U.S. congressional district"""
    
    dist_name = models.CharField(
        help_text = "District name"
    )

在捐赠者的管理员添加页面中,有一个地区的下拉选择菜单。问题是美国有 435 个国会选区。每次添加捐助者时滚动浏览的内容非常多,所以我想添加一个搜索框。

Django 有能力定义搜索字段。我试图这样做:

# admin.py

@admin.register(Donor)
class DonorAdmin(admin.ModelAdmin):
    search_fields = ['district']

这并不影响捐助者添加页面。“地区”仍然显示为一个巨大的下拉菜单,并且页面上的任何地方都没有搜索功能。

search_fields文档具体说

设置 search_fields 以启用管理员更改列表页面上的搜索框。

强调我的:search_fields似乎仅适用于“更改列表”页面,而不适用于“添加”页面。我想这就是为什么我的尝试没有奏效。

是否可以将搜索框添加到 Django 管理员添加页面?

标签: djangodjango-admin

解决方案


不,您不能将搜索框添加到 django 管理页面。


推荐阅读