【问题标题】:Django Listview - Filter and PaginationDjango Listview - 过滤器和分页
【发布时间】:2019-08-14 23:19:54
【问题描述】:

我是 django 的新手。我正在尝试创建两个表,第一个表是按发布日期筛选的最新添加产品,第二个表是按发布日期筛选的即将推出的产品。 这是我的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 来添加分页,但使用这种方法,它会在两个表中添加分页。

【问题讨论】:

    标签: python django listview pagination


    【解决方案1】:

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

    {% 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 %}
    

    【讨论】:

    • 不错!但是使用切片过滤器,我如何添加分页?
    猜你喜欢
    • 2019-08-17
    • 1970-01-01
    • 2018-05-11
    • 2023-03-06
    • 2018-07-10
    • 2019-02-21
    • 1970-01-01
    • 2015-08-12
    • 2012-08-28
    相关资源
    最近更新 更多