Django Listview-筛选和分页

时间:2019-03-24 15:47:40

标签: python django listview pagination

我是django的新手。我正在尝试创建两个表,第一个表具有按publication_date添加的最新产品过滤条件,第二个表具有由release_date提供的即将到来的产品过滤条件。 这是我的homepage.html代码:

...
{% for prodotto in products %}
<tr>
  <td>{{ prodotto.title }}</td>
  <td>{{ prodotto.description }}</td>
  <td>{{ prodotto.publication_date|date:"d/m/Y" }}</td>
  <td>{{ prodotto.release_date|date:"d/m/Y" }}</td>
</tr>
{% endfor %}

...

...
{% for prodotto in products %}
<tr>
  <td>{{ prodotto.title }}</td>
  <td>{{ prodotto.description }}</td>
  <td>{{ prodotto.publication_date|date:"d/m/Y" }}</td>
  <td>{{ prodotto.release_date|date:"d/m/Y" }}</td>
</tr>
{% endfor %}

这里是我的model.py

class Products(models.Model):
...
    title = models.CharField(max_length=100)
    publication_date = models.DateTimeField(auto_now_add=True)
    description = models.CharField(max_length=1000)
    slug = models.SlugField(unique=True)
    release_date = models.DateTimeField()
...

这里是我的view.py

class home(ListView):
    queryset = Products.objects.all()
    template_name = 'homepage.html'
    context_object_name = "products"

目前,我只能显示所有产品,而无需过滤。 我也尝试仅在第一个表中添加分页,但是我不知道如何在我的homepage.html中过滤和添加分页。

我尝试通过将paginate_by = 5添加到view.py中来添加分页,但是通过这种方法,它在两个表中都添加了分页。

1 个答案:

答案 0 :(得分:0)

您可以直接在模板中执行此操作:

{% for prodotto in products|slice:":5" %}
<tr>
  <td>{{ prodotto.title }}</td>
  <td>{{ prodotto.description }}</td>
  <td>{{ prodotto.publication_date|date:"d/m/Y" }}</td>
  <td>{{ prodotto.release_date|date:"d/m/Y" }}</td>
</tr>
{% endfor %}