def newEvent(request): # some printout crap for param, val in request.POST.items(): print param, val print "articles:", request.POST.getlist('articles') # start doing actual work e = NewsEvent.objects.get(pk=request.POST['pk']) print e.id e.articles.clear() if 'articles' in request.POST: for articleId in request.POST.getlist('articles'): e.articles.add(articleId) if 'title' in request.POST: e.title = request.POST['title'] if 'eventTag' in request.POST: e.eventTag = request.POST['eventTag'] # handle TimelineEntries if 'timelineEntry_add' in request.POST: for timelineEntry in request.POST.getlist('timelineEntry_add'): newTLEntry = TimelineEntry() newTLEntry.text = timelineEntry newTLEntry.event_id = request.POST['pk'] newTLEntry.save() for param, val in request.POST.items(): index = param.find('timelineEntry_') if index > -1 and param != 'timelineEntry_add': tlEntryId = param[index+len('timelineEntry_'):] tlEntry = TimelineEntry.objects.get(pk=tlEntryId) tlEntry.text = val tlEntry.save() # Editors e.editors.clear() if 'editors' in request.POST: print "handling editors..." for editorId in request.POST.getlist('editors'): print editorId e.editors.add(editorId) # tags e.tag_set.clear() if 'tags' in request.POST: for tagVal in request.POST.getlist('tags'): try: tagVal = int(tagVal) e.tag_set.add(tagVal) except ValueError: newTag = Tag() newTag.text = tagVal newTag.save() e.tag_set.add(newTag.id) e.save() # return HttpResponseRedirect("/edit_event/" + request.POST['pk']) return HttpResponseRedirect("/event/" + request.POST['pk'])