2013-10-18 2 views
1

:장고 절약 여러 인라인 formsets 내가 함께 결국 해당 formset 인라인 전환 후

def dns_view(request, domain): 
    dnszone = get_object_or_404(DNSSQL, zone = domain) 

    form1 = EditDNSZone(instance = dnszone) 
    forms = EditDNSEntry(instance = dnszone, prefix = 'entries') 
    formsmx = EditDNSEntryMX(instance = dnszone, prefix = 'mxentries') 

난 단지 Form1을 냈습니다 모든 형태의 저장하려고 후. 모든 양식을 저장하려면 어떻게해야합니까?

답변

1

Django의 formset은 동일한 양식의 여러 인스턴스 용입니다. formset을위한 것이 아닌 여러 폼 클래스를 저장하려고합니다.

양식을 작성하는 중 하나는 양식에 포함하려는 모든 필드를 포함하고 양식을 처리 할 때 처리 할 개별 양식을 작성하는 것입니다. 다음은 간단한 예입니다. 모델을 조사하고 모델 양식을 자동으로 작성하여 멋진 모습을 보여 주지만 그게 길다는 이야기입니다 ...

class Form1(forms.Form): 
    a_field = forms.CharField() 


class Form2(forms.Form): 
    b_field = forms.CharField() 


class MainForm(forms.Form): 
    a_field = forms.CharField() 
    b_field = forms.CharField() 
    def __init__(self, **kwargs): 
    super(MainForm, self).__init__(**kwargs) 
    # This will work because the field name matches that of the small forms, data unknow to 
    # a form will just be ignored. If you have something more complex, you need to append 
    # prefix, and converting the field name here. 
    form1 = Form1(**kwargs) 
    form2 = Form2(**kwargs) 
+0

좋아요, 가장 좋은 방법은 무엇입니까? –

관련 문제