如何呈现基于多对多字段的编辑表单

How to render an edit form based on a many to many field

如何创建一个显示 ModelMultipleChoiceField 且用户选择的字段已填写的编辑表单?

我在模型中有一个名为 items 的字段,它是一个 ManyToManyField 并且在表单中我使用 ModelMultipleChoiceField 来渲染它,但是当我在编辑表单,那么用户已经选择的选项将不会显示。

如何在呈现的多 select 框中将已选择的字段标记为已选择?

实例化表单时,您可以为字段传递初始值。

你可以这样做

form = Form(initial={'items':<items_queryset>.values('id', flat=True)})

或者,如果您使用的是模型表单,则可以传递模型实例

form = Form(instance=model_instance)

来源:dynamic initial values in django forms