hi I'm trying to make a sales system where to make a sale I need to open cash but I get the errors in my code of views amount = Decimal (request.POST ["amount"]), total = Decimal (request.POST ["total"]), difference = Decimal (request.POST ["dif_totals"]) , use django1.8 python2.7.11 some help please

from django.shortcuts     import render_to_response, get_object_or_404, redirect
from ventas_app.models    import *
from ventas_app.funciones import *
from django.db.models     import *
from django.template      import RequestContext
from django.core.urlresolvers       import reverse
from django.contrib.auth.decorators import login_required

#from django.http import Http404
from ast         import literal_eval
from datetime    import datetime
from decimal     import Decimal
from django.utils.datastructures import MultiValueDictKeyError
from django.contrib.auth         import authenticate, login, logout
from datetime    import *

import time
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from django.http import HttpResponse
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, Image

 """ Vista para guardar en la BD el nuevo movimiento, redirecciona de nuevo a la vista de movimientos"""
            def nuevo_movimiento(request):
                moc = MovimientoCaja( tipo          = request.POST["tipo"],
                                      cantidad      = Decimal(request.POST["cantidad"]),
                                      descripcion   = request.POST["motivo"],
                                      fecha         =

        return redirect(reverse('ventas_app.views.ver_movimientos_hoy'))

    def guardaBilletesTurno(denom, turn, cant):
        er = EfectivoReal ( denominacion = Decimal(denom), 
                            imagen = 'Imagenes/Efectivo/' + denom+'.jpg'
        b = Efectivo(denominacion = er,
                     cantidad     = cant,
                     modificado   = 'T',
                     turno_cajero = turn
        return b

    """ Vista para actualizar caja"""
    def abrir_caja(request):
        total = Decimal(request.POST["total"])
        if total != 0:
            moc = MovimientoCaja( tipo          = 'I',
                                  cantidad      = total,
                                  descripcion   = 'Caja Inicial',
                                  fecha         =


        return redirect(reverse('ventas_app.views.ver_movimientos_hoy'))

    """ Vista para actualizar caja"""
    def cerrar_caja(request):

        turno = Turno.objects.latest('fecha_inicio') =

        if turno.ajuste == None:

            diferencia = Decimal(request.POST["dif_totales"])
            moc = None

            if diferencia != 0:
                tipo_dif = 'P'
                if diferencia < 0:
                    tipo_dif = 'N'
                moc = MovimientoCaja( tipo          = tipo_dif,
                                      cantidad      = diferencia,
                                      descripcion   = 'Hubo diferencia entre caja y sistema',
                                      fecha         =


            turno.fecha_fin =
            turno.ajuste = moc

        return redirect(reverse('ventas_app.views.ver_movimientos_hoy'))

    """ Script para resolver un problema del sistema y acomodar la base de datos """


  File "C:\us\lib\site-packages\django\core\handlers\", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\us\lib\site-packages\django\contrib\auth\", line 22, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "C:\us\sistema_ventas_ceic_master\ventas_app\", line 636, in abrir_caja
    total = Decimal(request.POST["total"])
  File "C:\us\lib\site-packages\django\utils\", line 322, in __getitem__
    raise MultiValueDictKeyError(repr(key))
MultiValueDictKeyError: "'total'"
asked by Maria 14.11.2018 в 01:19

0 answers