26 Mart 2009, PERŞEMBE
Nasıl bir Django queryset filtre içinde eşit değil miyim?
Django model QuerySets, karşılaştırmalı değerler için __gt
__lt
ama yok__ne
/!=
/<>
Bir olduğunu görüyorum(eşit değildir?)
Bir kullanarak eşittir dışarı filtre etmek istiyorum:
Örnek:
Model:
bool a;
int x;
İstiyorum
results = Model.objects.exclude(a=true, x!=5)
!=
doğru sözdizimi değildir. __ne
, <>
denedim.
Yukarı kullanarak sona erdi:
results = Model.objects.exclude(a=true, x__lt=5).exclude(a=true, x__gt=5)
CEVAP
20 Temmuz 2009, PAZARTESİ
Belki Q objects Bu sorun için yardımcı olabilir. Ben onları hiç kullanmadım ama normal python ifadeleri gibi reddedildiği kombine edilebilir görünüyor.
Ben Sadece bunu denedim, oldukça iyi iş gibi görünüyor: güncelleme:
>>> from myapp.models import Entry
>>> from django.db.models import Q
>>> Entry.objects.filter(~Q(id = 3))
[<Entry: Entry object>, <Entry: Entry object>, <Entry: Entry object>, ...]
Bunu Paylaş:
Django, nasıl bir dinamik alan aramala...
Nasıl Django şablon içinde sitemin dom...
Nasıl bir proje içinde tek bir dosya i...
Nasıl böyle büyük mükafat içinde birde...
Django nasıl bir görünüm içinde 2 ya d...