【发布时间】:2018-12-09 13:23:01
【问题描述】:
我的 django listview 工作正常。
它接收url参数来过滤数据。 它是分页的。
现在,我想在用户会话中维护这些数据。 (页码和url参数)。
例子:
- 我在产品列表视图中。
- 我搜索“foo”
- 我选择第 2 页
- 然后,我单击任何产品详细信息。
- 页面将重定向到详细视图。
当我返回产品列表视图时,我想保留搜索参数“foo”并选择第 2 页。
有什么更好的方法来做到这一点?
我正在使用 Django 2.0.6
模型.py
class Product(models.Model):
name= models.CharField(_('name'), max_length=150)
price = models.DecimalField(max_digits=10, decimal_places=2, default=0.0)
Views.py
class ProductList(ListView):
model = Product
paginated_by = 10
def get_queryset(self):
queryset = Product.objects.all()
name = self.request.GET.get('name', None)
if name:
queryset = queryset.filter(name__icontains=name)
return queryset
网址.py
path('products/', views.ProductList.as_view(), name='product_list'),
【问题讨论】:
-
您可以将所需的数据存储到
django session或像其他答案一样将它们保留在 URL 中并通过GET请求访问它们。
标签: python django django-class-based-views