def edit_document(request, pk): """ Edit a document """ label_options = {'labels': {'item_type': 'Document type'}} document = Document.objects.get(pk=pk) eform = EditDocumentForm(instance=document) # rform = ReferenceForm(instance=document.reference) tag_formset = get_tag_formset(document, **label_options) if request.method == 'POST': # rform = ReferenceForm(request.POST, instance=document.reference) eform = EditDocumentForm(request.POST, instance=document) tag_formset = get_tag_formset(document, data=request.POST, **label_options) #this avoids ignoring the evaluation of the form to show the errors # rf_is_valid = rform.is_valid() rf_is_valid = True ef_is_valid = eform.is_valid() if rf_is_valid and ef_is_valid and tag_formset.is_valid(): # rform.save() # eform.instance.reference = rform.instance eform.save() tag_formset.save() return HttpResponseRedirect(reverse('documents.views.list_documents')) return render_to_response('edit_document.html', { 'document': document, 'rform': None, 'dform': eform, 'formset': tag_formset, }, context_instance=RequestContext(request))
def edit_document(request, pk): """ Edit a document """ document = Document.objects.get(pk=pk) eform = EditDocumentForm(instance=document) rform = ReferenceForm(instance=document.reference) if request.method == 'POST': rform = ReferenceForm(request.POST, instance=document.reference) eform = EditDocumentForm(request.POST, instance=document) #this avoids ignoring the evaluation of the form to show the errors rf_is_valid = rform.is_valid() ef_is_valid = eform.is_valid() if rf_is_valid and ef_is_valid: rform.save() eform.instance.reference = rform.instance eform.save() return HttpResponseRedirect(reverse('documents.views.list_documents')) return render_to_response('edit_document.html', { 'document': document, 'rform': rform, 'eform': eform, }, context_instance=RequestContext(request))