2012-05-22 55 views
4

我有以下過濾器:如何更改django中的過濾器以反映不等於?

open_slots = Opening.objects.filter(club_id=club_id, day=datetime.date.today(), reservation ='Open') 

我想創建另一個列表「closed_slots」具有所有的相同的屬性相同,除了保留不等於「打開」。當我嘗試使用保留!='打開'我得到一個錯誤。我該如何解決?

+0

有關返回的組細粒度的控制,看Django的ORM文檔,特別是關於使用['.filter()'](https://docs.djangoproject.com/en/dev/topics/ db/queries /#retrieveing-specific-objects-with-filters) –

+0

你也可以否定查詢 - 看到這個答案 http://stackoverflow.com/questions/687295/how-do-i-doa-a-不等於合Django的查詢集濾波 – danbgray

回答

13

使用exclude方法。詳情here

open_slots = Opening.objects.filter(club_id=club_id, day=datetime.date.today()).exclude(reservation ='Open') 
2

我試過以下,它工作正常。

from django.db.models import Q 
open_slots = Opening.objects.filter(club_id=club_id, day=datetime.date.today(), ~Q(reservation ='Open'))