2012-03-13 8 views
6

私はDjangoフォームにある問題を抱えていますが、私には明らかな解決策があるはずです。django formsetの異種フォーム

私は同じビューでのような...(ちょうど今の擬似コードを使用して申し訳ありませんが)何かを提出している異なる形式のカップルを持っている...別に

class Form1(): 
    #different attributes 

class Form2() 
    #different attributes 

<html> 
    <form> 
    {{ 1-instance-Form1 }} 
    {{ 2-instance-Form1 }} 
    {{ 1-instance-Form2 }} 
    {{ 2-instance-Form2 }} 
    </form> 
</html> 

jqueryで利用可能なフォームクラスの1つのフォームインスタンスを追加できるようにしたいと考えています。

<html> 
    <form> 
    {{ 1-instance-Form1 }} 
    {{ 2-instance-Form1 }} 
    {{ 1-instance-Form2 }} 
    {{ 2-instance-Form2 }} 
    {{ 3-instance-Form2 }} 
    </form> 
</html> 

このような問題を解決するためのソリューションを探しているうちに、Django formsetの概念に触れました。ドキュメントの説明では、同じFormクラスのインスタンスのコレクションです。しかし、私は、フォームセットは同様に、異種のフォームを処理する能力を持つことができます見ることができるよう:

いくつかの定義が

class BaseHeterogenousFormSet(StrAndUnicode): 

    def append(form): 
    #add one more form to the formset 

    def is_valid(): 
    #run is_valid for each of the forms in the formset 

    def clean(): 
     #run the clean for each of the forms ... 

を変更して、私はこの問題について考えています方法に何か問題はありますか?

答えて

5

あなたは、同じビューに複数のフォームセットを提出することができますが、Form1のインスタンスを処理し、別のフォームセットは、Form2ののインスタンスを扱うフォームセットの一つ(https://docs.djangoproject.com/en/1.6/topics/forms/formsets/#using-more-than-one-formset-in-a-view

を衝突名前を回避する必要があります。

+0

リンクの更新:https://docs.djangoproject.com/en/1.10/topics/forms/formsets/#using-more-than-one-formset-in-a-view –