Skip to main content
 首页 » 编程设计

python之Django之过滤模型对象

2025年05月04日37lori

我有一些模型:

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')  

买了还是不行。

我想查看所有预订,例如今天(开始日期)之后,这是我的问题。你能帮忙吗?

请您参考如下方法:

我们可以使用 now().date() 从 django.utils.timezone [Django-doc] 获取当前日期.然后我们可以过滤 Reservation 的 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} 
    )