[英]django filter with two dates
我想在我输入 HTML 表单的两个日期之间从数据库中过滤数据。
<form action=""method="post">
{% csrf_token %}
<input type="date" class="form-control" name="startDate" id="startDate" required><br>
<input type="date" class="form-control" name="endDate" id="endDate" required><br>
<button style="margin-left:150px;"type="submit" class="btn btn-success" name="date_filter">ok</button>
</form>
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class TimesheetDetails(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE,related_name="timesheet",null="True")
username = models.CharField(max_length = 30)
date = models.DateField(max_length = 10)
day = models.CharField(max_length = 10)
startTime = models.CharField(max_length =10)
endTime = models.CharField(max_length =10)
breakTime = models.CharField(max_length=3)
normalTime = models.CharField(max_length=10)
overTime = models.CharField(max_length = 10)
holidayTime = models.CharField(max_length = 10)
weekType = models.CharField( max_length = 10)
attendance = models.CharField( max_length = 10)
content = models.TextField( max_length = 300)
def view_timesheet(request):
if request.method == "POST":
if('startDate' and 'endDate') in request.POST:
startDate = request.POST.get('startDate')
print(startDate)
print (type(startDate))
endDate = request.POST.get('endDate')
print(endDate)
print (type(endDate))
user_row_count = TimesheetDetails.objects.filter(user=request.user)
print(user_row_count)
#dateRange = user_row_count.filter(date__range=['startDate','endDate']).count()
#print(dateRange)
#context = {'dateRange': dateRange}
#print(context)
return redirect('/total')
这是我现在得到的输出。
2019-12-06 2019-12-28 , , ]>
但是当我取消注释以下行并比较日期时,我收到以下错误。 任何帮助将不胜感激。
ValidationError at /list/
["'startDate' value has an invalid date format. It must be in YYYY-MM-DD format."]
Request Method: POST
Request URL: http://127.0.0.1:8000/list/
Django Version: 2.2.8
Exception Type: ValidationError
Exception Value:
["'startDate' value has an invalid date format. It must be in YYYY-MM-DD format."]
Exception Location: D:\Django\TimeSheetProject\morabu\lib\site-packages\django\db\models\fields\__init__.py in to_python, line 1249
Python Executable: D:\Django\TimeSheetProject\morabu\Scripts\python.exe
Python Version: 3.7.2
Python Path:
['D:\\Django\\TimeSheetProject',
'D:\\Django\\TimeSheetProject\\morabu\\Scripts\\python37.zip',
'D:\\Django\\TimeSheetProject\\morabu\\DLLs',
'D:\\Django\\TimeSheetProject\\morabu\\lib',
'D:\\Django\\TimeSheetProject\\morabu\\Scripts',
'c:\\program files\\python\\Lib',
'c:\\program files\\python\\DLLs',
'D:\\Django\\TimeSheetProject\\morabu',
'D:\\Django\\TimeSheetProject\\morabu\\lib\\site-packages']
Server time: Fri, 27 Dec 2019 15:57:13 +0900
我还尝试将 models.py 中的日期更改为 CharField 并且没有收到任何错误,但我的过滤计数为 0。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.