私のDjangoアプリには、次のpage.html
ような複数のモデルのフォームが含まれています。
# models.py
class OneModel(models.Model):
foo = models.CharField(...)
bar = models.CharField(...)
# forms.py
class OneForm(forms.ModelForm):
class Meta:
model = OneModel
保存時に、POSTデータに加えて、すべてのフォームにプレフィックスを追加します。次に例を示します。
form1 = OneForm(prefix=OneForm.Meta.model._meta.module_name)
次に、POST
保存するリクエストを送信し、次のデータを__init__
フォームに送信します。
# views.py
form_data = {'foo': 'fo-fo-fo', # from request.POST
'bar': 'bar-bar-bar'} # -//-//-
form1 = OneForm(form_data) # without prefix
その後、テンプレートを作成するときに、データ(fo-fo-fo
、bar-bar-bar
)を使用してフォームから入力を取得しますが、入力名にプレフィックスが含まれていません。これは、私が望むものではありません。
__init__
しかし、代わりにパーツにプレフィックスを追加すると、データなしでフォームが返されます。
# views.py
form1 = OpenForm(prefix=OneForm.Meta.model._meta.module_name, form_data)
必要なデータと追加したプレフィックスの両方を含むフォームの結果を取得するにはどうすればよいですか?