gpt4 book ai didi

python - Django adminsite 自定义 search_fields 查询

转载 作者:太空狗 更新时间:2023-10-29 16:56:08 25 4
gpt4 key购买 nike

在 django 管理中,您可以为 ModelAdmin 设置 search_fields 以便能够搜索那里给定的属性。我的模型类有一个属性不是真正的模型属性,这意味着它不在数据库表中。该属性与未通过关系绑定(bind)到当前模型的另一个数据库表相关。但我希望能够对其进行搜索,所以我必须以某种方式自定义管理站点创建的查询,以便在搜索字段被填充时进行过滤——这可能吗?如果可行,如何实现?我可以查询自定义属性的数据库表,然后返回适合搜索的模型类的 ID。然后,正如我所说,必须流入管理站点搜索查询。

谢谢!

最佳答案

从 django 1.6 开始,您可以通过在 ModelAdmin 子类中定义一个 get_search_results 方法来自定义搜索。

django documentation 中有很好的解释.以下示例是从该文档复制而来的。

class PersonAdmin(admin.ModelAdmin):
list_display = ('name', 'age')
search_fields = ('name',)

def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super(PersonAdmin, self).get_search_results(request, queryset, search_term)
try:
search_term_as_int = int(search_term)
queryset |= self.model.objects.filter(age=search_term_as_int)
except:
pass
return queryset, use_distinct

关于python - Django adminsite 自定义 search_fields 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3059390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com