2015-10-30 62 views
2

我的CreateView中有兩種形式。表格將完全獨立。這意味着它們將被獨立提交。我如何在基於類的CreateView中實現它而不重寫POST方法?CreateView中的多種形式

class EventPage(CreateView): 
    template_name = 'event.html' 
    form_class = RegisterToEvent 

    def form_valid(self, form, **kwargs): 
     form.instance.event = Event.objects.get(id = self.kwargs['event_id']) 
     return super(EventPage, self).form_valid(form) 

    def get_context_data(self, **kwargs): 
     context = super(EventPage, self).get_context_data(**kwargs) 
     event = Event.objects.get(id = self.kwargs['event_id']) 
     participants = Participant.objects.filter(event_id = event.id) 
     context['participants'] = participants 
     context['event'] = event 
     context['upload_document_form'] = UploadDocument 
     return context 

回答

0

我認爲這是使用Django formset

一個formset是一個抽象層的 同一頁面

另一種方式是在多種形式的工作的好地方解析POST提交按鈕名稱。例如:

if 'first_form_submit_name' in request.POST: 
    # do some stuff for first form 
elif 'second_form_name' in request.POST: 
    # do some stuff for second one 
+0

但我需要完全獨立的形式。表格將被獨立提交。據我所知,我不能用formset來實現這一點。或者我不是對的? – Rokas

+0

@增加了一個解決方案。請檢查 – wolendranh