4 votes

Filtrage en Python/Django basé sur la date, sans tenir compte de l'heure

J'aimerais filtrer les objets au jour près à l'aide de la date, mais je ne trouve nulle part d'exemple sur la façon de procéder.

Ce dernier, par exemple, fonctionne parfaitement pour rassembler tous les événements suivants :

@login_required
def invoice_picker(request):
    """Grab a date from the URL and show all the invoicable deliveries for that day."""
    query = request.GET.get('q' , '2/9/1984')
    date = datetime
    date = datetime.strptime('7/14/2010', '%m/%d/%Y')
    date = date.strptime(query, '%m/%d/%Y')
    results = []
    if query:
        results = LaundryDelivery.objects.filter(end__gte=date)
    return render_to_response('invoicer.html', {
        'results' : results,
        'date' : date,
        'user' : request.user,
    })

Mais lorsque je supprime __gte, il ne renvoie rien car les dates sont du type 2010-06-22 04:04:00 au lieu de 2010-06-22 00:00:00. J'ai aussi essayé :

 results = LaundryDelivery.objects.filter(end.date=date)

mais malheureusement j'obtiens l'erreur "keyword can't be an expression". Une idée ?

8voto

ars Points 35803

Je ne pense pas qu'il y ait un bon moyen de comparer des dates avec des dates. L'une d'entre elles est la suivante :

filter(end__year=date.year, end__month=date.month, end__day=date.day)

L'autre consiste à utiliser le range avec l'heure minimale et l'heure maximale de la journée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X