def eval(request, event_id): my_template_data = dict() #TODO: put in authentication stuff #get champ_info for this event champ_info = ChampInfo.objects.get(event=event_id) #find which program areas this event has program_areas = ProgramArea.objects.filter(programlink__champ_info=champ_info) formgroup = FormGroup() #add all forms for selected program areas for i,pa in enumerate(program_areas): form = Empty() form.groupname = pa.name form.program_area = pa field_group = pa.eval_model form.subform = FieldGroupForm(request.POST or None, field_group=field_group, owner = champ_info.value_owner) formgroup.add_form(form) my_template_data["formgroup"] = formgroup.forms #validate fields if request.POST:#formgroup.is_valid(): # check if fields validated valid = False #TODO... do not trust user entered data... should verify correctness here #loop thru formgroup and save stuff for form in formgroup.forms: if form.subform.is_valid(): #process the subform for this program group from form.subform.save() else: valid = False # return HttpResponseRedirect(domain + reverse(events) ) # Redirect after POST if valid: return HttpResponseRedirect(domain ) # Redirect after POST return render_to_response('champ2/event.html', my_template_data, context_instance=RequestContext(request))