如何为 Django Admin Change/Add 表单添加搜索字段?

How to add a search field for Django Admin Change/Add forms?

上下文

我正在制作一个生日应用程序,管理员可以在其中输入朋友的生日和他们希望为他们购买的礼物。礼物在单独的 table 中,friends_birthday table 通过 ManyToManyField 引用此礼物 table。当为他们的朋友创建一条数据(即名字、生日等)时,管理员必须首先通过礼物 table 为他们创建礼物,然后在 friends_user [=31] 中创建一行=] 添加他们的信息和礼物。

问题

当管理员将礼物添加给他们的朋友时,默认设置是一个装有许多礼物的盒子,他们将其中一些礼物分配给其他朋友。但是,如果项目规模扩大,那么框就会溢出,简单地突出显示选项是行不通的。因此,我想在 Django Admin 中以 add/change 形式创建一个搜索栏。

有什么想法吗?

您可以使用 filter_horizontal 获得更好的小部件,内置 filter/search 选项

class YourAdmin(admin.ModelAdmin):
    filter_horizontal = ('m2m_field',)
    ...

看起来像这样:

尝试在您的 admin.py 中添加 autocomplete_fields https://docs.djangoproject.com/en/4.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.autocomplete_fields