Porównaj ceny domen i usług IT, sprzedawców z całego świata

QueriesSet dla nie pustego pola tekstowego


Dla takiego modelu, jak:
class Item(models.Model):
notes = models.TextField(blank=True)
....

Próbuję wykonać prosty zestaw zapytań dla wszystkich pozycji, w których pole „uwagi” nie jest puste. Nie znajdując żadnej wzmianki o tej możliwości w dokumentach, ale komentując komunikat o błędzie, stwierdzając, że w rzeczywistości można porównać z więcej niż:
items_with_notes = Item.objects.filter(notes__gt='')

To działa, ale wygląda na włamanie. „Większe niż” wygląda na to, że powinno być używane do porównań liczbowych, a nie do sprawdzania, czy pole tekstowe jest puste. Zaskoczony, że nie znalazłem czegoś takiego:
Item.objects.exclude(notes=blank)

Czy coś mi brakuje lub .filter (notes__gt = ") - Czy to jest właściwy sposób?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

.exclude(notes=u'')
Czytaj więcej tutaj:

django.db.models.query.QuerySet.exclude
https://docs.djangoproject.com ... clude
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz także użyć obiektu q:
from django.db.models import Q
Item.objects.filter(~Q(notes=''))

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się