'NoneType' object has no attribute 'split'

0

I can not access to search for a user since I get the error of split .

This is my code:

views.py

def buscar_usuario(request):
    from django.utils import simplejson

    busqueda = request.GET.get('busqueda')

    busquedas = busqueda.split(' ')
    resultados_nombre = Usuario.objects.all()
    #Filtro por cada palabra de busqueda
    for b in busquedas:
        resultados_nombre = resultados_nombre.filter(nombre__icontains = b)

    resultados_cedula = Usuario.objects.all()
    #Filtro por cada palabra de busqueda
    for b in busquedas:
        resultados_cedula = resultados_cedula.filter(nombre__icontains = b)



    #Maximo un resultado:
    resultados_cedula = resultados_cedula[:1];
    if resultados_cedula.exists() :
        resultados = resultados_cedula;
    else:
        resultados = resultados_nombre[:1];

    respuesta = []
    for u in resultados:
        respuesta.append({'nombre': u.nombre, 'cedula':u.cedula, 'carnet':u.carnet, 'saldo':u.saldo_str()});


    return HttpResponse(simplejson.dumps(respuesta), content_type = 'application/javascript; charset=utf8')

And the error is:

Internal Server Error: /sistemacaja/buscar_usuario
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 473, in buscar_usuario
    busquedas = busqueda.split(":")
AttributeError: 'NoneType' object has no attribute 'split'
[16/Nov/2018 17:50:16] "GET /sistemacaja/buscar_usuario HTTP/1.1" 500 89277
    
asked by Maria 16.11.2018 в 22:55
source

1 answer

3

What happens is that in this line no parameter búsqueda is being received, that is why the variable has the value None, you can add a comma and two single quotes in this way if it does not exist it will always take the value '' and it will no longer give you the error in the split but I recommend that you check your template to verify that you are sending the parameter correctly

busqueda = request.GET.get('busqueda', '')
    
answered by 17.11.2018 в 15:11