как я могу сохранить и восстановить фильтры с помощью django_filters?
Я использую django_filters примерно так:
f = MyFilter(request.POST, queryset=MyModel.objects.all())
Теперь я бы хотел сохранить свой фильтр. Вот что я попробовал:
request.session['myfilter'] = f.form.cleaned_data
Я использую маринованный бэкэнд сессии, поэтому не ожидаю никаких проблем. Если после этого я попытаюсь восстановить фильтр, он не будет работать:
f = MyFilter(request.session['myfilter'], queryset=MyModel.objects.all())
Ошибка не отображается, но RangeFilter
, похоже, игнорируется. Конечно, я мог бы просто сохранить request.POST, но мне это кажется очень уродливым, поскольку он содержит непроверенные данные. Кроме того, сохранение набора запросов (f.qs
) не работает для меня, потому что мне нужно снова показать форму для редактирования.
Как это сделать правильно? Большое спасибо!