Django:在创建对象时搜索多对多字段

dan*_*d94 7 django django-models django-admin python-3.x django-2.0

我有一个用例,我有多个Ingredient可以Recipe通过 Django 管理员链接到 a的用例。现在我有大约一百种成分,这使得在以下 UI 中选择成分变得非常困难。

在此处输入图片说明

有没有办法添加搜索字段或类似于 django 管理员的内容以便于选择?

seu*_*ing 10

你的选择很少。

1. filter_horizontal

使用 filter_horizo​​ntal,您可以在管理中使用水平 m2m ui。我更喜欢在管理中使用 m2m 的这种方式。

class YourAdmin(admin.ModelAdmin):
    filter_horizontal = ('m2m_field',)
    ...
Run Code Online (Sandbox Code Playgroud)

而结果将是……

在此处输入图片说明

2.raw_id_fields 文档

您可以使用 raw_id_fields将弹出模式与您的 m2m 字段一起使用。

当你有很多 m2m 场时,它有点用。此外,很容易过滤要添加的 m2m obj。

class YourAdmin(admin.ModelAdmin):
    raw_id_fiedls = ('m2m_field',)
    ...
Run Code Online (Sandbox Code Playgroud)