私が抱えている問題は私のテンプレートにあります。画像とタイトルを送信するために、未知の数の入力(ファイルとテキスト)に拡張できるフォームがあります。私の写真モデルには、ImageFieldとCharFieldの2つのフィールドがあります。アップロードされた画像の数に基づいて、ビューにその数の写真オブジェクトを作成したいと思います。
したがって、ユーザーは2枚の写真をアップロードするか、別の写真を10枚アップロードする必要があります。動的フォーム生成に関するJacobianの投稿を読みましたが、既知のフィールド数に制限されているようです。
不明な数の引数を処理するためのフォームクラスをどのように構成しますか?
これまでのところ:
class PhotoForm(forms.Form):
def __init__(self, *args, **kwargs):
super(PhotoForm, self).__init__(*args, **kwargs)
print args
self.fields['photo'] = forms.ImageField(
label=_("Photo 1 (Required)"),
widget=forms.FileInput( attrs={'class':''}),
required=True)
self.fields['photo_desc'] = forms.CharField(
label=_("Photo 1 Description"),
widget=forms.TextInput(),
required=True)
N個のフィールドを作成する引数をループする必要があると思います。これにより、form.is_valid()を呼び出したときにフォームを検証できるようになります。
これに欠けているものはありますか?