django如何在 search_fields和list_filter 中包含外鍵字段
我們知道在 admin.py 中定義 search_fields 可以控制在后台管理界面中能夠搜索的字段。
但是,當 search_fields 包含外鍵字段時,此時進行搜索會報錯:
TypeError at /admin/hello/foo/
Related Field has invalid lookup: icontains
解決的辦法是修改 search_fields 中的外鍵字段名稱。
將 search_fields 中的外鍵字段改為 foreign_key__related_fieldname 這種形式就可以了。 這種用法適用於 ForeignKey 及 ManyToManyField 。
models.py
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 字段
