Я сталкиваюсь с проблемой при применении поиска в таблицах django2, на самом деле я создал фильтр поиска и применился к форме django и передал ее в функцию configure () таблиц django2 с применением пагинации, но всякий раз, когда я нажимаю следующую страницу,Значение поискового фильтра очищает, а поиск не работает.Может кто-нибудь предложить мне способ сохранить значение поискового значения всякий раз, когда я нажимаю следующую кнопку.
Мой файл Views.py
def coupons(request):
search_filter = {}
form = CouponSearchForm()
if request.POST.get('active'):
active = True if request.POST['active'] == 'true' else False
search_filter['active'] = active
if request.POST.get('marketing'):
active = True if request.POST['marketing'] == 'true' else False
search_filter['marketing'] = active
if request.POST.get('coupon_code'):
search_filter['code__icontains'] = request.POST.get('coupon_code')
if request.POST.get('created_by'):
if request.POST.get('created_by') in User.objects.all().values_list('username', flat=True):
search_filter['created_by_id__username'] = User.objects.get(username=str(request.POST.get('created_by')))
else:
search_filter['created_by_id'] = int(0)
if request.POST.get('language') and request.POST.get('language') != '':
search_filter['language__pk'] = request.POST.get('language')
if request.POST.get('package_id') and request.POST.get('package_id') != '':
search_filter['package_id__pk'] = request.POST.get('package_id')
if request.POST.get('email') and request.POST.get('email') != '':
search_filter['email__icontains'] = request.POST.get('email')
if request.POST.get('phone_number') and request.POST.get('phone_number') != '':
search_filter['phone_number__icontains'] = request.POST.get('phone_number')
if request.POST.get('exam_type') and request.POST.get('exam_type') != '':
search_filter['exam_type__pk'] = int(request.POST.get('exam_type'))
if request.POST.get('exam_name') and request.POST.get('exam_name') != '':
search_filter['exam_name__exam_name'] = ExamName.objects.get(id=int(request.POST.get('exam_name'))).exam_name
table = CouponTable(
Coupon.objects.filter(**search_filter).order_by('-updated_at'))
RequestConfig(request, paginate={"per_page": 30}).configure(table)
return render(request, 'common/table.html', {'table': table, 'model': 'Coupon', 'url': 'add_coupon', 'form': form})
, как вы можете видеть, что поискфильтр работает только на 1-й странице, но после этого теряет значение поискового фильтра и фильтрация не работает ..