Jquery 我无法将daterangepicker用于筛选日期范围的模板
Models.pyJquery 我无法将daterangepicker用于筛选日期范围的模板,jquery,django,python-3.x,daterangepicker,Jquery,Django,Python 3.x,Daterangepicker,Models.py class Expenses(models.Model): reg_date = models.DateField(auto_now_add=True) exp_id = models.AutoField(primary_key=True) # F description = models.CharField(max_length=200) expenses_value = models.IntegerField() def __
class Expenses(models.Model):
reg_date = models.DateField(auto_now_add=True)
exp_id = models.AutoField(primary_key=True) # F
description = models.CharField(max_length=200)
expenses_value = models.IntegerField()
def __str__(self):
return str(self.exp_id)
forms.py
class Expensesform(forms.ModelForm):
description = forms.CharField(widget=forms.Textarea(attrs={"rows":3, "cols":40,'class':'form-control','placeholder':'Enter Detail here...'}),required=True)
expenses_value = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control','placeholder':'Enter Amount here...'}),required=True)
class Meta:
model = Expenses
fields = ("description", "expenses_value")
我使用了代码基日期,它工作得很好。但我无法使用日期范围选择器输入服装日期范围结果。平均用户可以使用日期范围选择器计算该日期范围的费用
views.py
def DailyExpReport(request):
tday = datetime.date.today()
datepicker1 = datetime.datetime.strptime('01072019', "%m%d%Y").date()
total = 0
myexpenses = Expenses.objects.filter(reg_date__gte = start_Date, reg_date__lte=tday)
today_entry = Expenses.objects.filter(reg_date__gte = start_Date, reg_date__lte=tday).aggregate( Sum('expenses_value'))
return render (request, "blog/expenses_report.html",{'Expenses':myexpenses, 'total': today_entry})
这是我的模板,它可以很好地用于每日报告或特定的编码日期
<!DOCTYPE html>
{% extends "blog/base.html"%}
{% block body_block %}
<h1>Expenses Detail:</h1>
<br>
<div class="container">
<table class = "table"table table-striped table-bordered table-sm>
<thead calss= "thead-dark">
<tr>
<th>Date</th>
<th>ID</th>
<th>Description</th>
<th>Expences Value</th>
</tr>
</thead>
<tbody>
{% for object in Expenses %}
<tr>
<td>{{object.reg_date }}</td>
<td>{{object.exp_id }}</td>
<td>{{object.description}}</td>
<td>{{object.expenses_value}}</td>
<td>
<a href="/editexpenses/{{object.exp_id}}"><span calss = "glyphicon glyphicon-pencil">Edit</span> </a>
<a href="/deleteexpenses/{{object.exp_id}}" onclick="return confirm('Are you sure you want to delete this item?');">Delete</a>
</td>
</tr>
{% endfor%}
</tbody>
</table>
<br>
<br>
<a href="/dailyexpensesreport" class="btn btn-dark">Daily Report</a>
<a href="/monthlyexpensesreport" class="btn btn-dark">Monthly Report</a>
</div>
<br>
<br>
<h3> Total Expenses are: {{total.expenses_value__sum}}</h3>
{% endblock %}
{%extends“blog/base.html”%}
{%block body_block%}
费用明细:
日期
身份证件
描述
费用价值
{费用%%中的对象为%}
{{object.reg_date}
{{object.exp_id}
{{object.description}
{{object.expenses\u value}
{%endfor%}
总费用为:{Total.Expenses\u value\u sum}
{%endblock%}
您需要这两个库
https://momentjs.com/
http://www.daterangepicker.com/
您可以在template.html中添加以下内容
<button type="button" class="btn daterange" data-toggle="tooltip"
title="Choose a date range"><i class="fa fa-calendar"></i>
</button>
在your views.py中,为了处理请求,我使用了以下方法:
@csrf_exempt
def DepartChart(request):
if request.method == 'POST':
params = json.loads(request.body)
report_array = params['rangedate']
for i in report_array:
startdate = i['startday']['startDate']
EndDate = i['endday']['endday']
department_count = Login_chart.objects.filter(date__gte=startdate, date__lte=EndDate).values('department').annotate(total_login=Sum('login_count')).order_by('department')
context = {
'department_count' : department_count
}
return render(request, 'troubleshootingapplication/admin_dash/departement_chart.html', context)
else:
return HttpResponse('')
希望这将有助于您需要这两个库
https://momentjs.com/
http://www.daterangepicker.com/
您可以在template.html中添加以下内容
<button type="button" class="btn daterange" data-toggle="tooltip"
title="Choose a date range"><i class="fa fa-calendar"></i>
</button>
在your views.py中,为了处理请求,我使用了以下方法:
@csrf_exempt
def DepartChart(request):
if request.method == 'POST':
params = json.loads(request.body)
report_array = params['rangedate']
for i in report_array:
startdate = i['startday']['startDate']
EndDate = i['endday']['endday']
department_count = Login_chart.objects.filter(date__gte=startdate, date__lte=EndDate).values('department').annotate(total_login=Sum('login_count')).order_by('department')
context = {
'department_count' : department_count
}
return render(request, 'troubleshootingapplication/admin_dash/departement_chart.html', context)
else:
return HttpResponse('')
希望这会有所帮助我尝试过ajax或js方法,但失败了。我只是在html中使用两次简单的输入类型日期字段(开始日期和结束日期),并使用视图中的输入功能进行过滤 我的观点.py
def日期选择器(请求):
如果request.method==“GET”:
返回呈现(请求'blog/datepicker.html')
elif request.method==“POST”:
start\u date=request.POST.get(“startdate”,“”)
end_date=request.POST.get(“enddate”,“enddate”)
总数=0
myexpenses=Expenses.objects.filter(注册日期=开始日期,注册日期=结束日期)
today_entry=Expenses.objects.filter(注册日期=开始日期,注册日期=结束日期)。聚合(总和(“费用值”)
返回呈现(请求'blog/datepicker.html',{'Expenses':myexpenses,'total':today_entry})
其他:
返回render(请求'blog/dailyexpensesreport')
我尝试过ajax或js方法,但失败了。我只是在html中使用两次简单的输入类型日期字段(开始日期和结束日期),并使用视图中的输入功能进行过滤
我的观点.py
def日期选择器(请求):
如果request.method==“GET”:
返回呈现(请求'blog/datepicker.html')
elif request.method==“POST”:
start\u date=request.POST.get(“startdate”,“”)
end_date=request.POST.get(“enddate”,“enddate”)
总数=0
myexpenses=Expenses.objects.filter(注册日期=开始日期,注册日期=结束日期)
today_entry=Expenses.objects.filter(注册日期=开始日期,注册日期=结束日期)。聚合(总和(“费用值”)
返回呈现(请求'blog/datepicker.html',{'Expenses':myexpenses,'total':today_entry})
其他:
return render(request,'blog/dailyexpensesreport')
是否有任何要共享的错误?您的“注册日期”字段具有auto\u now\u add=True
,这意味着该字段不可编辑。Django将始终将此字段设置为对象创建的日期created@IainShelvington“我不想编辑日期字段我只想筛选特定日期范围的数据,用户可以通过日期范围选择器选择的日期以及这些日期的总费用”@FarhaniWalid我已经厌倦了这些方法来添加日期选择器“stackoverflow.com/questions/49054846/…”但这些都不适用于我。您的日期范围输入在哪里?您是否收到任何要共享的错误?您的“注册日期”字段具有auto\u now\u add=True
,这意味着该字段不可编辑。Django将始终将该字段设置为对象的创建日期created@IainShelvington "我不想编辑日期字段我只想过滤特定日期范围的数据,用户可以通过日期范围选择器选择的日期以及这些日期的费用总和“@FarhaniWalid我已经厌倦了这些方法来添加日期选择器”stackoverflow.com/questions/49054846/…“但是这些都不适用于我。您的daterange输入在哪里?感谢您的共享,但我尝试了您的方法,但失败了,获取“view blog.views.DateinputForm没有返回HttpResponse对象。它反而没有返回任何对象。”错误。我在视图末尾添加了其他:语句,试试看。谢谢分享,但我尝试了你的方法,但失败了,获取“视图blog.views.DateinputForm没有返回HttpResponse对象。它没有返回任何对象。”错误。我在视图末尾添加了else:语句,请尝试。