簡體   English   中英

python django_tables2過濾和分頁問題

[英]python django_tables2 filtering and pagination issue

我正在嘗試渲染包含過濾數據表的網頁。 過濾應基於用戶提交的日期。 對於初始的GET請求,我嘗試將initial_date設置為'01 01 2015',並且在提交POST請求時,從POST查詢集中提取日期。

我遇到的問題似乎與django_tables2分頁有關。 用戶在POST請求中提交日期表單后,初始表數據已成功呈現,但是,當我單擊表底部的“下一步”按鈕時,我收到“異常值:該頁面不包含任何結果”。

單擊“下一步”按鈕出現,以作為GET請求調用GetCustomData()函數,然后使用“ initial_time”而不是過濾的數據。

如何格式化函數,以便后續的GET請求返回初始POST請求中的過濾數據?

views.py

from django.shortcuts import render
from .models import TestResult
import datetime
import django_tables2 as tables
from .forms import DateForm

class SimpleTable(tables.Table):
    class Meta:
        model = TestResult
        attrs = {"class": "paleblue"}


def GetCustomData(request):

    form = DateForm()

    if request.method == 'POST':
        request_time = datetime.datetime.strptime((request.POST['custom_date_day']+' '+request.POST['custom_date_month']+' '+request.POST['custom_date_year']), '%d %m %Y')
        time_min = datetime.datetime.combine(request_time, datetime.time.min)
        time_max = datetime.datetime.combine(request_time, datetime.time.max)
        custom_query = TestResult.objects.filter(timestamp__range=(time_min, time_max))
        table = SimpleTable(custom_query)
        table.paginate(page=request.GET.get('page', 1), per_page=30)

        return render(request, 'custom_results.html', {'table_results': table,
                                                       'form': form})

    elif request.method == 'GET':
        initial_time = datetime.datetime.strptime('01 01 2015', '%d %m %Y')
        time_min = datetime.datetime.combine(initial_time, datetime.time.min)
        time_max = datetime.datetime.combine(initial_time, datetime.time.max)
        custom_query = TestResult.objects.filter(timestamp__range=(time_min, time_max))
        table = SimpleTable(custom_query)
        table.paginate(page=request.GET.get('page', 1), per_page=30)

        return render(request, 'custom_results.html', {'table_results': table,
                                                       'form': form})

可能不是最干凈的方法,但是我設法通過引用和更新GetCustomData()函數外部的列表來使其工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM