SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Flohoo

    Flohoo

    12 EYLÜL 2009
  • OVERWERK

    OVERWERK

    6 Temmuz 2010
  • Rickymon Tero

    Rickymon Ter

    1 Ocak 2007