Django自定义html按日期filter data

本文探讨了在Django框架中如何自定义HTML代码实现日期筛选功能,分享了相关HTML和Python代码,并展示了实现效果。尽管代码逻辑有待优化,作者期待得到高手的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于django框架自定义日期筛选按钮见解,代码逻辑可能不是很好。欢迎大佬指点!

HTML代码

<div style="margin: 0 auto">
            From&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="date" id="fromDate" oninput="fromfunction()">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
            End &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="date" id="endDate">
            <button id="FilterButton" type="button">Filter</button>
        </div>
        <script type="text/javascript">
            function fromfunction() {
                var from_Date = document.getElementById("fromDate").value;
                var end_date = document.getElementById("endDate").value;
                if (from_Date.length > 0) {
                    if (end_date.length <= 0) {
                        document.getElementById('endDate').value = from_Date
                    }
                }
            }
        </script>
        <script type="text/javascript">
            var oBtn = document.getElementById("FilterButton");
            var froms = document.getElementById("fromDate");
            var ends = document.getElementById("endDate");
            oBtn.onclick = function () {
                window.location.href = '{{URLList}}' + "?" + "fromdate=" + froms.value + "&enddate=" + ends.value;
            }
        </script>

PYTHON代码

@login_required
def List(request):
	fromDate = request.GET.get("fromdate", "")
	endDate = request.GET.get("enddate", "")
	client = Client.objects.get(pk=request.session['Client'])
	app_name = request.resolver_match.app_name
	model = apps.get_model(app_name, MainModel)
	modelform = get_form(model)
	items = model.objects.filter(Client=client)
	if fromDate != "" and endDate != "":
		if int(fromDate.replace("-", "")) <= int(endDate.replace("-", "")):
			items = model.objects.filter(Client=client, ETDDate__range=(fromDate, endDate))
	URLList = reverse('%s:%s-List' % (app_name, MainModel))
	URLCreate = reverse('%s:%s-Create' % (app_name, MainModel))
	DataList = []
	for b in items:
		DataList.append(modelform(instance=b))
	template = loader.get_template('%s/index.html' % MainModel.lower())
	context = {
		'ModelName' : MainModel,
		'DataList': DataList,
		'EmptyItem' : modelform(),
		'URLList' : URLList,
		'URLCreate' : URLCreate,
	}
	return HttpResponse(template.render(context, request))

效果图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值