我有一个小型 Django 项目basic-pagination。有一个模型、一个表单和两个视图(列表视图、表单视图)。用户在表单视图中提交数据,然后数据显示在列表视图中。启用分页以一次仅显示 5 个帖子。
我实现的是一个带有 GET 响应的表单,用于获取我想要显示的数据(例如姓名、日期)。请参阅下面的代码
class FormListView(ListView):
model = models.ToDoList
paginate_by = 5 # if pagination is desired
template_name = 'pagination/listview.html'
context_object_name = 'forms'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['title'] = 'Form List View'
context['filter_form'] = forms.FilterListView(self.request.GET)
return context
def get_queryset(self):
queryset = models.ToDoList.objects.all().order_by('-id')
name = self.request.GET.get('name')
if name:
queryset = queryset.filter(name=name)
order_by = self.request.GET.get('order_by')
if order_by:
queryset = queryset.order_by(order_by)
print(queryset)
return queryset
问题是,如果您从一个页面移动到另一个页面,那么基于类的视图会调用该方法ListView,从而丢失了我想要的过滤查询集。get_queryset12
如何在整个分页过程中保持过滤?
蝴蝶不菲
慕哥9229398
相关分类