在Django的Admin模块里使用search搜索字段时,出现了以下错误:
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/exp/status/?q=452734380932
Django Version: 2.2.1
Exception Type: FieldError
Exception Value: Related Field got invalid lookup: icontains
Admin模块对应的代码:
class StatusAdmin(admin.ModelAdmin):
list_display = ('event','event_date')
search_fields = ['event']
错误原因是,event是一个ForeignKey字段,直接操作是无法获得值的,我们需要去外键目标的表里去读取该值,比如我们这里的ForeignKey字段event去获取外键目标里event的取值,那么这样修改:
class StatusAdmin(admin.ModelAdmin):
list_display = ('event','event_date')
search_fields = ['event__event']
即在ForeignKey字段后面加上两个下划线加目标字段(__keyname)