Как отобразить 2 списка наборов запросов Frond end? (Django ListView get_queryset) - PullRequest
0 голосов
/ 07 июня 2018

Я получил 2 списка наборов запросов expired_item и queryset в Django ListView, но я не знаю, когда истек срок действия элемента (набор запросов пуст), как отобразить другой список expired_item в конце списка, независимо от того, чтоЯ изменил в abc.html, expired_item не будет отображаться, я вставил свой код, как показано ниже:

class ABCListView(ListView):
    model = ABC
    ordering = ('name', 'skill_course')
    context_object_name = 'abcs'
    template_name = ''

    def get_queryset(self, **kwargs):
        # Omitted
        ......
        ......
        # Omitted
        expired_item = list(ABC.objects.filter(pk__in=aa).exclude(pk__in=z))
        queryset = Permit.objects.filter(pk__in=z)
        return queryset

И мой HTML-файл abc.html, как показано ниже:

{% extends 'base.html' %}

{% block content %}
  <nav aria-label="breadcrumb">
  </nav>
  <h2 class="mb-3">My Items list</h2>
  <div class="card">
    <table class="table mb-0">
      <thead>
        <tr>
          <th>Name</th>
          <th>Department</th>
          <th>Status</th>
          <th></th>
        </tr>
      </thead>
      <tbody>
        {% for a in abcs %}
          <tr>
            <td class="align-middle">{{ a.name }}</td>
            <td class="align-middle">{{ a.department.get_html_badge }}</td>
            <td class="align-middle badge badge-pill badge-danger">{{ a.status }}</td>
          </tr>
        {% empty %}
        {% endfor %}
      </tbody>
    </table>
  </div>

  <h2 class="mb-3">My Expired Items list</h2>
  <div class="card">
    <table class="table mb-0">
      <thead>
        <tr>
          <th>Name</th>
          <th>Department</th>
          <th>Status</th>
          <th></th>
        </tr>
      </thead>
      <tbody>
        {% for b in expired_item %}
          <tr>
            <td class="align-middle">{{ b.name }}</td>
            <td class="align-middle">{{ b.department.get_html_badge }}</td>
            <td class="align-middle badge badge-pill badge-danger">{{ a.status }}</td>
          </tr>
        {% empty %}
        {% endfor %}
      </tbody>
    </table>
  </div>
<div class="card-footer">
{% endblock %}

Большое спасибо за любой совет!

1 Ответ

0 голосов
/ 07 июня 2018

Я бы предложил использовать обычный вид django.Этот общий ListView просто создан для использования одного списка.Просто передайте оба набора запросов в вашем контексте и визуализируйте ваш шаблон с этим.

Вы также можете использовать get_context_data(), но это будет более или менее хакерским, а не тот вопрос, который я бы порекомендовал.

...