这是我的观点:
class FilteredReclamationListView(FilterView, SingleTableView):
table_class = ReclamationTable
model = ReclamationMainModel
template_name = 'reclamation_table/index.html'
filterset_class = ReclamationFilter
table_pagination = {
'per_page': 50
}
def get_table_data(self):
return self.object_list
def get_queryset(self):
return self.model.objects.filter(archive=False).order_by('-id')
在这种情况下是否可以记住URL参数?怎么样?
我希望有一个用户进入另一个视图的情况,当他回来时,他会看到他的最后一个查询/过滤器。我阅读了有关会话和request.GET.urlencode()
的内容,但我无法在我看来应用这些内容。
答案 0 :(得分:1)
Aule,您可以将过滤器存储在会话中。
request.session['filter'] = myFilter
答案 1 :(得分:1)
我找到了解决问题的解决方案。我的第一个观点如下:
class FilteredReclamationListView(FilterView, SingleTableView):
table_class = ReclamationTable
model = ReclamationMainModel
template_name = 'reclamation_table/index.html'
filterset_class = ReclamationFilter
table_pagination = {
'per_page': 50
}
def get_table_data(self):
return self.object_list
def get_queryset(self):
self.request.session['urltoremember'] = self.request.get_full_path()
return self.model.objects.filter(archive=False).order_by('-id')
在第二种观点中我做到了:
class ReclamationDetailView(DetailView):
model = ReclamationMainModel
context_object_name = 'reclamation_data'
def get_context_data(self, **kwargs):
context = super(ReclamationDetailView, self).get_context_data(**kwargs)
context['filter'] = self.request.session['urltoremember']
return context
在模板中,我更改链接以返回到FilteredReclamationListView到{{ filter }}
:
a href="{{ filter }}" class="btn btn-default navbar-btn" id="menu-toggle">back</a>