2012-03-13 4 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, который, как описывается в документации, представляет собой коллекцию экземпляров одного и того же класса Form. Тем не менее, как я могу видеть FormSets может иметь возможность обрабатывать разнородные формы, а также:

С некоторыми определениями изменилось

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

Вы можете представить более одного formset в ту же точку зрения, но вам нужно, чтобы избежать столкновения имя (https://docs.djangoproject.com/en/1.6/topics/forms/formsets/#using-more-than-one-formset-in-a-view)

Один formset обрабатывает экземпляры Form1 и другой formset обрабатывает экземпляры Form2.

+0

Обновление ссылки: https://docs.djangoproject.com/en/1.10/topics/forms/formsets/#using-more-than-one-formset-in-a-view –

Смежные вопросы