2012-03-13 56 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添加一個表單類的表單實例,因此表單可能會變成

<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 ... 

是不是有什麼毛病,我在思考這個問題的方法是什麼?

回答