【发布时间】:2012-03-12 17:32:15
【问题描述】:
我在Foos 和Bars 之间有一个多对多链接。我不是特别喜欢多选小部件,所以我想拥有一个小部件,它允许选择单个 Bar 和一个按钮来添加更多选择字段。
从我一直在阅读的表单集来看,可能是答案。由只有一个选择字段的表单组成的表单集是否有效,或者是否有更好的方法来获得我正在寻找的行为?
【问题讨论】:
标签: django django-forms
我在Foos 和Bars 之间有一个多对多链接。我不是特别喜欢多选小部件,所以我想拥有一个小部件,它允许选择单个 Bar 和一个按钮来添加更多选择字段。
从我一直在阅读的表单集来看,可能是答案。由只有一个选择字段的表单组成的表单集是否有效,或者是否有更好的方法来获得我正在寻找的行为?
【问题讨论】:
标签: django django-forms
我不会担心表单中的字段数量。如果您的“子”模型只有一个字段,那么我会说在此应用程序中使用具有单字段表单的表单集是完全有效的。
你应该看看inline formsets,他们应该可以帮助你满足你的需要。虽然我不能 100% 确定它们适用于 M2M...
补充一点:如果不内联forsmet不能直接用M2M,你可以只使用模型formset,使用formset.save(commit=False)后手动保存视图中的关系。 docs: formset saving
【讨论】:
inlineformset_factory 中您可以定义要使用的Form 和Formset,并且像任何其他Form 一样,您可以指定fields 或exclude 并修剪您的表单-docs跨度>