You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django的raw_id_fields中添加搜索栏?

问题描述

我开发Django项目时遇到问题:项目包含多个应用,其中一个存储所有用户联系信息,其他部门应用需从该应用注册用户。我使用raw_id_fields扩展信息,但点击放大镜跳转至联系人页面时,发现该页面无搜索栏。

以下是我的代码:

class PersonRegistrationAdmin(admin.ModelAdmin):
    list_display = ('person_role', 'contact')
    search_fields = ('contact__name', 'contact__phone_number', 'contact__email', 'contact__date_of_birth', 'contact__cnic')
    raw_id_fields = ('contact',)


admin.site.register(PersonRegistration, PersonRegistrationAdmin)
解决方法

你当前在PersonRegistrationAdmin中定义的search_fields仅作用于PersonRegistration模型的后台列表页,而点击raw_id_fields的放大镜按钮后,跳转的是**Contact模型对应的后台选择页面**,因此需要给Contact模型的ModelAdmin配置search_fields。

具体操作:

  • 找到Contact模型所在的应用,创建或修改对应的ModelAdmin类,添加搜索字段配置:
from django.contrib import admin
from .models import Contact  # 导入你的Contact模型

class ContactAdmin(admin.ModelAdmin):
    # 配置Contact模型自身的字段作为搜索项
    search_fields = ('name', 'phone_number', 'email', 'date_of_birth', 'cnic')
    # 可选:添加list_display优化列表页展示
    list_display = ('name', 'phone_number', 'email')

admin.site.register(Contact, ContactAdmin)
  • 确保Contact模型已在Django后台完成注册(上述代码已包含注册逻辑,若之前未注册可直接使用)。

完成配置后,再次点击raw_id_fields的放大镜跳转至联系人选择页面时,顶部会出现搜索栏,支持按你配置的字段进行搜索。

内容的提问来源于stack exchange,提问作者Aijaz Mahdavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:57:08