def new_atm_doc(request): "Creates a new ATM Document" DocForm = form_for_model(AtmDocument) if request.method == "POST": doc_form = DocForm(request.POST) if doc_form.is_valid(): # сохраняем новый документ doc = doc_form.save(True) # теперь распарсим строки документа i = 1 while True: if request.has_key("card_name%i" % i): card_name = request.POST["card_name%i" % i] if card_name=="": break card_number = request.POST["card_number%i" % i] arrival_date = request.POST["arrival_date%i" % i] delivery_date = request.POST["delivery_date%i" % i] card_note = request.POST["card_note%i" % i] # сохраняем карточку new_item = AtmCardItem(name=card_name, number=card_number, delivery_date=delivery_date, arrival_date=arrival_date, note=card_note, doc=doc) new_item.save() # индекс следующей строки i=i+1 return HttpResponseRedirect("/edit_docs_atm/%s/" % doc.id) else: doc_form = DocForm() return default_renderer(request, "atm_doc", {'doc_form':doc_form})
def edit_atm_doc(request, doc_id): "Edit ATM Document" doc = AtmDocument.objects.get(pk=doc_id) DocForm = form_for_instance(doc) if request.method == "POST": doc_form = DocForm(request.POST) if doc_form.is_valid(): # сохраняем новый документ doc = doc_form.save(True) save_instance(doc_form, doc, True) # теперь распарсим строки документа i = 1 while True: if request.has_key("card_name%i" % i): card_name = request.POST["card_name%i" % i] if card_name=="": break card_number = request.POST["card_number%i" % i] arrival_date = request.POST["arrival_date%i" % i] delivery_date = request.POST["delivery_date%i" % i] card_note = request.POST["card_note%i" % i] if request.has_key("card_id%i" % i): card_id = request.POST["card_id%i" % i] item = AtmCardItem.objects.get(pk=card_id) item.name = card_name item.number = card_number item.arrival_date = arrival_date item.delivery_date = delivery_date item.note=card_note item.save() else: # сохраняем новую карточку new_item = AtmCardItem(name=card_name, number=card_number, delivery_date=delivery_date, arrival_date=arrival_date, note=card_note, doc=doc) new_item.save() # индекс следующей строки i=i+1 return HttpResponseRedirect("/edit_docs_atm/%s/" % doc.id) else: doc_form = DocForm() items = AtmCardItem.objects.filter(doc=doc).order_by("id") content = { "doc": doc, "doc_form": doc_form, "items": items, } return default_renderer(request, "atm_edit", content)