2015-10-30 66 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