如何以今天为截止日期获取 Todo 项目
How to get Todo items with today as deadline
所以我仍在创建我的待办事项列表应用程序,我想呈现所有以今天为截止日期的项目,以提醒用户未完成的任务。
models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class ToDo(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
todo = models.CharField(max_length=50)
description = models.TextField(max_length=200, blank=True)
created = models.DateField(auto_now=True)
end = models.DateField()
start = models.DateField()
completed = models.BooleanField(default=False)
def __str__(self):
return f'{self.owner} - {self.todo}'
views.py
def index(request):
activities = ToDo.objects.all()
today = ToDo.objects.get(end=datetime.date.today)
todo = ToDo.objects.count()
complete = ToDo.objects.filter(completed=True).count()
percent = complete * 100 // todo
if request.method == 'POST':
try:
search = request.POST.get('todo')
activities = ToDo.objects.filter(todo__icontains=search)
except:
search = request.POST.get('end')
activities = ToDo.objects.filter(end=search)
context = {
'activities' : activities,
'percent' : percent,
'today' : today,
}
return render(request, 'home.html', context)
我在 views.py
中导入了 DateTime
试试这个
from django.utils import timezone
def index(request):
today = timezone.localtime(timezone.now())
deadline_today = ToDo.objects.filter(
end__year=today.year,
end__month=today.month,
end__day=today.day
)
context = {
...
'today' : deadline_today ,
}
你快到了!
today = ToDo.objects.get(end=datetime.date.today)
是问题。 get() 用于获取单个行,你想要通过 filter
完成的所有匹配行。您还发送了函数 today
,而不是用 today()
.
调用它
这样做:
today = ToDo.objects.filter(end=date.today())
所以我仍在创建我的待办事项列表应用程序,我想呈现所有以今天为截止日期的项目,以提醒用户未完成的任务。
models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class ToDo(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
todo = models.CharField(max_length=50)
description = models.TextField(max_length=200, blank=True)
created = models.DateField(auto_now=True)
end = models.DateField()
start = models.DateField()
completed = models.BooleanField(default=False)
def __str__(self):
return f'{self.owner} - {self.todo}'
views.py
def index(request):
activities = ToDo.objects.all()
today = ToDo.objects.get(end=datetime.date.today)
todo = ToDo.objects.count()
complete = ToDo.objects.filter(completed=True).count()
percent = complete * 100 // todo
if request.method == 'POST':
try:
search = request.POST.get('todo')
activities = ToDo.objects.filter(todo__icontains=search)
except:
search = request.POST.get('end')
activities = ToDo.objects.filter(end=search)
context = {
'activities' : activities,
'percent' : percent,
'today' : today,
}
return render(request, 'home.html', context)
我在 views.py
中导入了 DateTime试试这个
from django.utils import timezone
def index(request):
today = timezone.localtime(timezone.now())
deadline_today = ToDo.objects.filter(
end__year=today.year,
end__month=today.month,
end__day=today.day
)
context = {
...
'today' : deadline_today ,
}
你快到了!
today = ToDo.objects.get(end=datetime.date.today)
是问题。 get() 用于获取单个行,你想要通过 filter
完成的所有匹配行。您还发送了函数 today
,而不是用 today()
.
这样做:
today = ToDo.objects.filter(end=date.today())