Foros del Web » Programando para Internet » Python »

funcion buscar

Estas en el tema de funcion buscar en el foro de Python en Foros del Web. mi funcion de buscar me sale este error NameError at /cruds/lista_tipo_almacen/ name 'context' is not defined Estoy usando Django 1.8 con python 3.4 espero su ...
  #1 (permalink)  
Antiguo 29/03/2016, 21:35
 
Fecha de Ingreso: julio-2011
Ubicación: Peru
Mensajes: 92
Antigüedad: 6 años, 5 meses
Puntos: 1
funcion buscar

mi funcion de buscar me sale este error

NameError at /cruds/lista_tipo_almacen/

name 'context' is not defined
Estoy usando Django 1.8 con python 3.4 espero su pronta ayuda gracias






aqui dejo el codigo de mi

Views .py
Código Python:
Ver original
  1. from django.shortcuts import render, HttpResponseRedirect
  2. from django.core.urlresolvers import reverse, reverse_lazy
  3. from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
  4. from .forms import Tipo_almacenForm
  5. from django.views.generic import ListView, UpdateView, DeleteView
  6.  
  7.  
  8. from .models import Tipo_almacen
  9.  
  10. # Create your views here.
  11.  
  12. class ListarTipoAlmacen(ListView):
  13.     model = Tipo_almacen
  14.     template_name = 'tipo_almacen/lista_tipo_almacen.html'
  15.     paginate_by = 10
  16.  
  17.    #mi filtro de buscar
  18.     def get(self, request, *args, **kwargs):
  19.         buscar_descripcion = request.GET.get('buscar_descripcion', '')
  20.  
  21.         lista_tipo_almacen = Tipo_almacen.objects.filter(descripcion__contains=buscar_descripcion)
  22.        
  23.         if buscar_descripcion == '':
  24.             context['error'] = {'ingrese dato por favor'}
  25.         else:
  26.             if not buscar_descripcion:
  27.                 context['error'] = {'el dato ingreso no existe'}
  28.  
  29.  
  30.  
  31.         return render_to_response('tipo_almacen/lista_tipo_almacen.html', {'lista_tipo_almacen': lista_tipo_almacen})
  32.    # #########
  33.  
  34.     def get_context_data(self, **kwargs):
  35.         context = super(ListarTipoAlmacen, self).get_context_data(**kwargs)
  36.         lista_tipo_almacen = Tipo_almacen.objects.all().order_by('descripcion')
  37.  
  38.         paginator = Paginator(lista_tipo_almacen, self.paginate_by)
  39.         page = self.request.GET.get('page')
  40.  
  41.         try:
  42.             pagina = paginator.page(page)
  43.         except PageNotAnInteger:
  44.             pagina = paginator.page(1)
  45.         except EmptyPage:
  46.             pagina = paginator.page(paginator.num_pages)
  47.  
  48.         context['lista_tipo_almacen'] = pagina
  49.         return context

formulario.html

Código HTML:
Ver original
  1. {% extends "main.html" %}
  2.  
  3. {% block content %}
  4. <div>
  5.     <a class="btn btn-primary" href="{% url 'agregar_tipo_almacen' %}">Agregar <span class="glyphicon glyphicon-plus"></span></a>
  6.     <br><br>
  7.  
  8.         <div class="row">
  9.             <div class="col-lg-6">
  10.                 <div class="input-group">
  11.                   <input type="text" class="form-control" placeholder="Ingrese texto">
  12.                   <span class="input-group-btn">
  13.                     <button class="btn btn-default" type="button">Buscar</button>
  14.                   </span>
  15.                 </div>
  16.             </div>
  17.         </div>
  18.         <br>
  19.  
  20.         <div class="panel panel-primary">
  21.             <div class="panel-heading">
  22.                 <h4>Lista de Tipo de almacen</h4>
  23.             </div>
  24.  
  25.             <table class="table">
  26.                 <th>Nombres</th>
  27.                 <th>Acciones</th>
  28.                 <tbody>
  29.                     {% for data in lista_tipo_almacen %}
  30.                         <tr>
  31.                             <td>
  32.                                 {{data.descripcion}}
  33.                             <td>
  34.  
  35.                                 <a href="{% url 'editar_tipo_almacen' data.pk %}">Editar <span class="glyphicon glyphicon-edit"></span></a>
  36.                                 <a href="{% url 'eliminar-tipo-almacen' data.pk %}" data-toggle="modal_almacen" data-target="#modal_almacen" data-id="{{ data.descripcion }}">Eliminar <span class="glyphicon glyphicon-trash"></span></a>
  37.                         </tr>
  38.                     {% endfor %}
  39.                 </tbody>
  40.             </table>
  41.         </div>
  42.  
  43.         <ul class="pagination">
  44.             {% if page_obj.has_previous %}
  45.                 <li class="">
  46.                     <span><a href="?page={{ page_obj.previous_page_number }}"> << </a></span>
  47.                 </li>
  48.             {% endif %}
  49.  
  50.  
  51.             {% for num in paginator.page_range %}
  52.  
  53.                     <li class="activate">
  54.                         <span> <a href="?q={{ context }}&page={{ num }}"> {{ num }}</a> </span>
  55.                     </li>
  56.  
  57.             {% endfor %}
  58.  
  59.  
  60.             {% if page_obj.has_next %}
  61.                 <li>
  62.                     <span><a href="?page={{ page_obj.next_page_number }}"> >> </a></span>
  63.                 </li>
  64.             {% endif %}
  65.         </ul>
  66. </div>
  67.  
  68. {% endblock %}
  #2 (permalink)  
Antiguo 03/04/2016, 12:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 12 años, 8 meses
Puntos: 1360
Respuesta: funcion buscar

En tu método get no deberías de tener context.

Mueve esto a get_context_data, puedes ver el request apartir de self.request
Código Python:
Ver original
  1. if buscar_descripcion == '':
  2.             context['error'] = {'ingrese dato por favor'}
  3.         else:
  4.             if not buscar_descripcion:
  5.                 context['error'] = {'el dato ingreso no existe'}

Etiquetas: django, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:34.