django admin 或xadmin 错误 总结 [django]如何在 search_fields 中包含外键字段

django管理界面admin搜索报错:TypeError: Related Field got invalid lookup: icontains

报错

TypeError: Related Field got invalid lookup: icontains

原因

出错原因是你配置的ModelAdmin类中,元组search_fields中的项不是字符类型。

解决

删除元组search_fields中类型不符的项

参考

附加一个示例:http://stackoverflow.com/questions/24569687/searching-by-related-fields-in-django-admin

将 search_fields 中的外键字段改为 foreign_key__related_fieldname 这种形式就可以了。 这种用法适用于 ForeignKey 及 ManyToManyField 。

model

class Hello(models.Model):
    name = models.CharField(max_length=100)

    #...


class Foo(models.Model):
    hello = models.ForeignKey(Hello)

admin.py

class FooAdmin(admin.ModelAdmin):
    search_fields = ('hello__name',)  # 搜索 Hello 中的 name 字段