Reputation: 35
I want to filter the date 5 days before the deadline in Django, I already have a query but not working. How can I solve this?
django views
def bdeadline(request):
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
dl = books.objects.filter(deadline = datetime.now().date() +timedelta(days=5))
return render(request, 'deadline.html',{'title':'Car - Deadline', 'dl':'dl'})
Upvotes: 1
Views: 337
Reputation: 51988
There are two potential problems in your code. One is querying DateTimeField
with date data. Another is sending string dl
as context.
dl = books.objects.filter(deadline = datetime.now().date() +timedelta(days=5))
# ^^^^^^^^^
return render(request, 'deadline.html',{'title':'Car - Deadline', 'dl':'dl'})
# ^^^^
So, you can fix like this:
def bdeadline(request):
dl = books.objects.filter(deadline__date = datetime.now().date() + timedelta(days=5)) # consider using PascalCase when naming classes(based on pep 8)
return render(request, 'deadline.html',{'title':'Car - Deadline', 'dl':dl})
I am using __date
to get only the date data of the database.
Upvotes: 1