django如何在 search_fields和list_filter 中包含外键字段

Posted demiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django如何在 search_fields和list_filter 中包含外键字段相关的知识,希望对你有一定的参考价值。

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 字段

以上是关于django如何在 search_fields和list_filter 中包含外键字段的主要内容,如果未能解决你的问题,请参考以下文章

django使用search_fields报错

管理员 search_fields 中的 Django UUIDField

dgango中admin下添加搜索功能

dgango中admin下添加搜索功能

如何设置Django管理员搜索字段?

我们如何在 django 管理搜索字段中搜索多对多字段