2017-07-31 25 views
1

私はDjangoを初めて使い、フォームのリストを保持し、それらを処理するビューを作成しようとしました。私はdjangoの一般的なビューで提供されるFormViewには慣れていますが、その中には1つのフォームしか保持していません。 アイデアは、私が持っているメインフォームがいくつかのフォームに分割され、次に「ミニフォーム」がリスト(「フォーム」)で保持されているということです。 私は(再利用性などのような理由のために)の部分にフォームを分割し、フォームのリストを保存していますので、テンプレートは(トリックを行います)、次のようになります。Django複数のフォーム処理

... 
<form ...> 
    {% for form in forms %} 
    {{ form.as_p }} 
    {% endfor %} 
    <input type="submit"...> 
</form> 
... 

私がされていますフォームを処理し、それらを検証し、それらからデータを取得するビューを使いこなす。私はイムのように感じるので、実際よりも複雑になっているので、私はあなたに簡単な見解の例を与えるように頼みたい。イルがさらに発展する(

答えて

0

これはもっとコメントかもしれないがコメントとして回答するのに十分な担当者がいないので、答えに入れています:

フォームのリストを作成する代わりに、ミックスインを作成することを主な関心事と考えていましたか? これは次のようになります。

from django import forms 

class NameFormMixin(object): 
    your_name = forms.CharField(label='Your name') 

class EmailFormMixin(object): 
    email = forms.EmailField(label='Your Email') 

class NameEmailForm(forms.Form, 
        NameFormMixin, 
        EmailFormMixin): 
    pass 

あなたがミックスインであなたの検証機能が含まれており、一般的なDjangoのフォームを持つことができますメインフォームクラスの関数

+0

お返事ありがとうございます!私は同様の方法でミックスインを使用していましたが、私が考えてみると、あなたが提案したアプローチは、ジェネリックコードの非常に小さなコストで簡単に行うことができます(私の元の計画は、私の目には柔軟性があります)。 – ofekzi

関連する問題