关于django框架自定义日期筛选按钮见解,代码逻辑可能不是很好。欢迎大佬指点!
HTML代码
<div style="margin: 0 auto">
From      <input type="date" id="fromDate" oninput="fromfunction()">      
End       <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))