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

Shu*_*sal 4 django django-models django-admin python-3.x

在这里,我在 Django 模型中定义了多对多字段,我想在我的 Django 管理搜索字段中搜索多对多字段。由于我们不能在自定义 djangomodelAdmin 类的 'search_fields=[]' 中放置多对多字段。如果有人有解决方案,请提供一些建议。

Wil*_*sem 6

假设我们有两个模型ItemSubItem

class SubItem(Model):
    name = CharField(max_length=128)

class Item(Model):
    subitems = ManyToManyField(SubItem)
Run Code Online (Sandbox Code Playgroud)

我们可以在搜索名字相关的SubItem对象,通过使用双下划线(__在)search_fieldsModelAdmin

class ItemAdmin(admin.ModelAdmin):
    search_fields = ['subitems__name']
Run Code Online (Sandbox Code Playgroud)

如果这样输入查询,则搜索将在s的名称上进行SubItem,并且Item将返回包含此类子项的 s。