在listview中使用会话

时间:2016-02-25 11:00:55

标签: django django-views

我正在尝试使用存储在会话中的变量(在先前视图中通过表单设置)过滤listview中的查询集。

这样做的正确方法是什么?

class SomeListView(ListView):
    model = MyModel
    test_filter = self.request.session['test_filter']
    queryset = TariffPrices.objects.filter(test_filter)

1 个答案:

答案 0 :(得分:4)

您可以通过在get_queryset方法

中进行设置来完成此操作
class SomeListView(ListView):
    model = MyModel

    def get_queryset(self):
        test_filter = self.request.session.get('test_filter')
        if test_filter:
            return TariffPrices.objects.filter(test_filter)
        return TariffPrices.objects.all()

您现在遇到的问题是您是否尝试在班级使用实例字段