我正在尝试将搜索选项添加到我的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'方法作为元素?
答案 0 :(得分:0)
Django无法搜索您已发现的属性。但是,您只需将first_name
和last_name
字段添加到search_fields
即可,它将按预期工作。
如果您需要对整个名称值进行精确匹配,我的建议是添加一个非规范化字段,可能称为full_name
,通过post_save信号保持同步。