【问题标题】:How to add methods to customised search_fields in Django admin.ModelAdmin如何在 Django admin.ModelAdmin 中向自定义的 search_fields 添加方法
【发布时间】:2015-08-23 08:03:53
【问题描述】:

我正在尝试将搜索选项添加到我的 django 管理页面。请查看下面的代码。

class ApplicationAdmin(admin.ModelAdmin):

def get_name(self, obj):
    return obj.user.first_name + ' ' + obj.user.last_name
list_display = ('get_name', ... ... )
#search_fields = ['first_name', 'last_name'
search_fields = ['get_name']

此实现返回 FieldError,因为似乎 search_fields 属性无法将方法“get_name”作为元素。

有没有办法让 search_fields 将 'get_name' 方法作为一个元素?

【问题讨论】:

    标签: python django django-models django-admin modeladmin


    【解决方案1】:

    Django 无法搜索您发现的属性。但是,您只需将 first_namelast_name 字段添加到您的 search_fields 即可,它会按预期工作。

    如果您需要对整个名称值进行精确匹配,我的建议是添加一个非规范化字段,可能称为 full_name,它通过 post_save 信号保持同步。

    【讨论】:

      猜你喜欢
      • 2012-06-28
      • 1970-01-01
      • 2011-03-04
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多