1

私が知る限り、Django 1.5 の時点でも、ネストされたフォームセットの組み込み処理はありません。つまり、任意の数のグループがあり、すべて同じページから任意の数のメンバーを追加する必要があります。私は現在、Nathan Yergler の方法を使用してそうしようとしていますが、Django 1.5 では壊れているようです。

メソッドの要点は、グループ フォームセットのadd_fieldsメソッドをオーバーライドして、メンバーの を含めることinline_formsetです。ただし、ビューで GroupFormSet インスタンスを作成すると、グループ インスタンスを渡したかどうかに関係なく、ValidationError: 'ManagementForm data is missing or has been tampered with'

たとえば、私のビューのスニペットget_context_data:

group_inst = models.TemplateFieldGroup.objects.filter(name="Study")[0]
context['group_formset'] = forms.GroupFormSet(instance=group_inst)

Django 1.5 でこの方法をうまく展開した人はいますか? あるいは、同じ目標を達成するためのより良い方法を持っている人はいますか?

ちょっとした編集: 私の「グループ」は、実際にはさらに大きな傘のメンバーです: Template オブジェクトには、複数の TemplateFields を持つ複数の TemplateFieldGroups があります。ただし、 GroupFormSet() に適切な Template インスタンスを渡しても、当面の問題は解決しません。

4

2 に答える 2

1

最近、同様の問題がありました。Django admin - inline inlinesからの StackOverflow の回答に基づいて、いくつかのカスタム フォームおよびフォームセット クラスを作成することで解決しました(または、一度に 3 つのモデルを編集)。

この方法は Django 1.4 ではうまく機能しましたが、Django 1.5 に更新すると機能しなくなりました。それを解決するために、 https ://github.com/didorothy/mlrma という github リポジトリを作成しました。

README.md は、私の特定の状況と目標をより完全に説明しています。私のソリューションは Django 管理者に焦点を当てていますが、バラバラにして単独で使用することもできます。3 つ以上のレベルを行うには、拡張することができます。

于 2013-08-07T18:56:31.170 に答える