MultiValueDictKeyError in / systembox / buy_do

0

Help because of the error when I run python manage.py runserver and it does not recognize my products. views.py

def comprar(request):

    productos = literal_eval(request.POST["productos"])
    pago      = literal_eval(request.POST["pago"])

    try:
        usr = get_object_or_404(Usuario, cedula = request.POST["cliente"])
    except MultiValueDictKeyError:
        n_c = literal_eval(request.POST["nuevo_cliente"])
        usr = Usuario(  nombre = n_c["nombre"],
                        cedula = n_c["cedula"],
                        carnet = n_c["carnet"],
                        saldo  = 0,
                        fecha  = datetime.now(),
                        tipo   = 'C')
    usr.save()
    f = Factura( usuario = usr, fecha = datetime.now())
    f.save()

    for d in productos:
        prod = get_object_or_404(Producto, nombre = d["nombre"])

        pv = VentaProducto(producto = prod, factura = f, cantidad = d["cantidad"], precio = prod.precio_obj())
        pv.save()

        prod.ventas   += 1
        prod.cantidad -= pv.cantidad
        prod.save()

    e = Decimal(pago['efectivo'])
    s = Decimal(pago['saldo'])

    if(e > 0):
        m1 = MovimientoVentas(factura = f, tipo = 'E', cantidad =  e)
        m1.save()

    if(s > 0):
        m1 = MovimientoVentas(factura = f, tipo = 'S', cantidad = s)
        m1.save()
        usr.saldo -= s

    usr.save()

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

error

Traceback (most recent call last):
  File "C:\us\lib\site-packages\django\core\handlers\base.py", line 114, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\us\lib\site-packages\django\contrib\auth\decorators.py", line 22, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "C:\us\sistema_ventas_ceic_master\ventas_app\views.py", line 517, in comprar
    productos = literal_eval(request.POST["productos"])
  File "C:\us\lib\site-packages\django\utils\datastructures.py", line 301, in __getitem__
    raise MultiValueDictKeyError(repr(key))
MultiValueDictKeyError: "'productos'"
[17/Nov/2018 17:00:47] "GET /sistemacaja/comprar_do HTTP/1.1" 500 92107
    
asked by Maria 17.11.2018 в 22:02
source

0 answers