Использовать filter в Джанго

У меня есть моя функция buscar, но у меня выходит эта ошибка:

introducir la descripción de la imagen aquí

Здесь я оставляю ему код:

view.py

class ListarTipoAlmacen(ListView):
    model = Tipo_almacen
    template_name = 'tipo_almacen/lista_tipo_almacen.html'
    paginate_by = 10

    def get(self, request, *args, **kwargs):
        buscar_descripcion = request.GET.get('buscar_descripcion', '')

        lista_tipo_almacen = Tipo_almacen.objects.filter(descripcion__contains=buscar_descripcion)

        if buscar_descripcion == '':
            context['error'] = 'ingrese dato por favor'
        else:
            if not buscar_descripcion:
                context['error'] = 'el dato ingreso no existe'

        return render_to_response('tipo_almacen/lista_tipo_almacen.html', {'lista_tipo_almacen': lista_tipo_almacen}, context['error'])


    def get_context_data(self, **kwargs):
        context = super(ListarTipoAlmacen, self).get_context_data(**kwargs)
        lista_tipo_almacen = Tipo_almacen.objects.all().order_by('descripcion')

        paginator = Paginator(lista_tipo_almacen, self.paginate_by)
        page = self.request.GET.get('page')

        try:
            pagina = paginator.page(page)
        except PageNotAnInteger:
            pagina = paginator.page(1)
        except EmptyPage:
            pagina = paginator.page(paginator.num_pages)

        context['lista_tipo_almacen'] = pagina
        return context

HTML



Lista de Tipo de almacen

{% for data in lista_tipo_almacen %} {% endfor %}
Nombres Acciones
{{data.descripcion}} Editar Eliminar

0
задан 13.11.2017, 22:01
2 ответа

То, в чем ты нуждаешься, состоит в том, чтобы использовать mГ©todo get и allГ - выдавать ее informaciГіn, чтобы потом перемещать ее template.

Пример:

def get(self, request, *args, **kwargs):
    name_search = request.GET.get('name_search', '')
    if not name:
        raise Http404

    lista_tipo_almacen = Tipo_almacen.objects.filter(
        descripcion__contains=name_search,
    )
    return render_to_response(
        'store_search.html',
        {
            'lista_tipo_almacen': lista_tipo_almacen,
        }
    )
1
ответ дан 24.11.2019, 14:41
  • 1
    скажи мне, поскольку я это перемещаю, во мне сдержись в моем html, ты смог бы ayudarem с этим пожалуйста –  Andres Vilca 29.03.2016, 18:02
  • 2
    с render_to_response ты это делаешь. –  Felipe Zuluaga 30.03.2016, 18:14
  • 3
    Я использую render_to_response, но у меня выходит ошибка и место как этот мой код actulamente @Felipe Zuluaga –  Andres Vilca 30.03.2016, 18:34
  • 4
    Сделай это экспертом и # 237;: return render_to_response (и #39; tipo_almacen/lista_tipo_almacen.html и # 39; {и #39; lista_tipo_almacen и # 39;: lista_tipo_almacen, и #39; ошибка и # 39;: и #39; твое сообщение и # 39;}), и ты возвращаешь сообщение в сдержись. –  Felipe Zuluaga 31.03.2016, 19:01
  • 5
    Привет @AndresVilca, если он или любой другой ответ решил Вашу проблему, пожалуйста считай принимать clicando отметка check (в форме V под puntuaci и # 243; n ответа). Это показывает в сообщество, что ты нашел soluci и # 243; n и шага вы давать и # 225; reputaci и # 243; n в оба (в t и # 237; и тот, кто ответил). Конечно, у тебя нет никакого obligaci и # 243; n делания этого. –  rnrneverdies 12.04.2016, 18:14

Если то, что ты хочешь, состоит в том, чтобы включать пагинацию, попытайся так:

view.py

class ListarTipoAlmacen(ListView):
    model = Tipo_almacen
    template_name = 'tipo_almacen/lista_tipo_almacen.html'

def get(self, request, *args, **kwargs):
    errores = []
    if request.method == 'GET':
        buscar_descripcion = request.GET.get('buscar_descripcion', '')
        if not request.GET.get('buscar_descripcion', ''):
            errores.append('Ingrese dato por favor')
        else:
            lista_tipo_almacen = Tipo_almacen.objects.filter(descripcion__icontains=buscar_descripcion)

            paginator = Paginator(lista_tipo_almacen, 10)

            parametros = request.GET.copy()
            if parametros.has_key('pagina'):
                del parametros['pagina']

            page = request.GET.get('pagina')
            try:
                queryset = paginator.page(page)
            except PageNotAnInteger:

                queryset = paginator.page(1)
            except EmptyPage:

                queryset = paginator.page(paginator.num_pages)

            context = {
                "objetc_list": queryset,
                "parametros": parametros,
            }
            return render(request, 'tipo_almacen/lista_tipo_almacen.html', context)
    return render(request, 'tipo_almacen/lista_tipo_almacen.html', {'errores': errores})

HTML

<div class="row">
      {% if errores %}

          {% for error in errores %}
            <h5>{{ error }}</h5>
          {% endfor %}

      {% endif %}

    <div class="col-lg-12">
        <div class="form-group">
          <div class="col-md-4">
            <input id="textinput" name="textinput" placeholder="ingrese nombre" class="form-control input-md" type="text">
          </div>
        </div>

        <div class="form-group">
            <div class="col-md-2">
                <button id="singlebutton" name="singlebutton" class="btn btn-primary">Buscar</button>
            </div>
        </div>
    </div>
</div>
<br><br>

 {% if objetc_list %}
<div class="panel panel-primary">
    <div class="panel-heading">
        <h4>Lista de Tipo de almacen</h4>
    </div>

    <table class="table">
        <th>Nombres</th>
        <th>Editar</th>
        <th>Borrar</th>
        <tbody>
            {% for obj in objetc_list %}
                <tr>
                    <td>{{obj.descripcion}}</td>
                    <td><a href="{% url 'editar_tipo_almacen' obj.pk %}">Editar <span class="glyphicon glyphicon-edit"></span></a></td>
                    <td><a href="{% url 'eliminar-tipo-almacen' obj.pk %}" data-toggle="modal_almacen" data-target="#modal_almacen" data-id="{{ obj.descripcion }}">Eliminar <span class="glyphicon glyphicon-trash"></span></a></td>
                </tr>
            {% endfor %}
        </tbody>
    </table>

  <ul class="pagination">
    {% if objetc_list.has_previous %}
      <li class="waves-effect"><a href="?pagina={{ objetc_list.previous_page_number }}{% if parametros.urlencode %}&{{ parametros.urlencode }}{% endif %}"><i class="material-icons">chevron_left</i></a></li>
      {% else %}
      <li class="disabled"><a href="#!"><i class="material-icons">chevron_left</i></a></li>
    {% endif %}

    {% for num in objetc_list.paginator.page_range %}
      {% ifequal num objetc_list.number %}
        <li class="active"><a href="#!">{{ num }}</a></li>
      {% else %}
        <li class="waves-effect"><a href="?pagina={{ num }}{% if parametros.urlencode %}&{{ parametros.urlencode }}{% endif %}">{{ num }}</a></li>
      {% endifequal %}
    {% endfor %}

    {% if objetc_list.has_next %}
      <li class="waves-effect"><a href="?pagina={{ objetc_list.next_page_number }}{% if parametros.urlencode %}&{{ parametros.urlencode }}{% endif %}"><i class="material-icons">chevron_right</i></a></li>
      {% else %}
      <li class="disabled"><a href="#!"><i class="material-icons">chevron_right</i></a></li>
    {% endif %}
  </ul> 

{% else %} 

<p>El dato ingresado no existe</p>  

{% endif %} 

</div>
0
ответ дан 24.11.2019, 14:41