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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM