Django - фильтрация объектов модели - PullRequest
2 голосов
/ 22 сентября 2019

У меня есть модель:

class Reservation(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    name = models.CharField(max_length=50)
    date_start = models.DateTimeField(default=timezone.now)
    date_stop = models.DateField(default=timezone.now)

Я пытаюсь отфильтровать все резервирования:

@login_required
def reservations_list_view(request):
    reservations = Reservation.objects.all() 
    return render(request, 'reservations/reservations_list.html', {'reservations': reservations})

В данный момент я пропустил этот фильтр: reservations = Reservation.objects.filter (...) - Я не знаю, что мне использовать.

Я пытался, например,

reservations = Reservation.objects.filter(name__exact='Tom') 

покупка все еще не работает.

Я хотел бы увидеть все бронирования, например, после сегодняшнего дня (start_date), и вот моя проблема.Не могли бы вы помочь с этим?

1 Ответ

0 голосов
/ 22 сентября 2019

Мы можем получить текущую дату с помощью now().date() из django.utils.timezone [Django-doc] .Затем мы можем отфильтровать Reservation s, у которых date_start больше или равно этой дате с помощью __gte lookup [Django-doc] :

from django.utils.timezone import now

@login_required
def reservations_list_view(request):
    reservations = Reservation.objects.filter(<b>date_start__gte=now().date()</b>) 
    return render(
        request,
        'reservations/reservations_list.html',
        {'reservations': reservations}
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...