dAr*_*nac 16 python django django-admin
在django管理员中,您可以为ModelAdmin设置search_fields,以便能够搜索那里给出的属性.我的模型类有一个属性不是真正的模型属性,意味着它不在数据库表中.该属性涉及另一个数据库表,该表不通过关系绑定到当前模型.但我希望能够搜索它,所以我必须以某种方式自定义管理站点创建的查询,以便在搜索字段填满时进行过滤 - 这是否可能,如果,如何?我可以查询我的自定义属性的数据库表,然后返回适合搜索的模型类的ID.然后,正如我所说,这必须流入管理站点搜索查询.
谢谢!
luc*_*luc 22
从django 1.6开始,您可以通过get_search_results在ModelAdmin子类中定义方法来自定义搜索.
在django文档中对此进行了详细解释.以下示例是从此doc复制的.
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
Run Code Online (Sandbox Code Playgroud)
sha*_*pan -2
这可能会有所帮助
search_fields = ['foreign_key__lated_fieldname']
| 归档时间: |
|
| 查看次数: |
11166 次 |
| 最近记录: |