Riješeno: upiti django modela

Jedan od glavnih problema s upitima Django modela je taj što mogu biti vrlo opširni. Na primjer, ako želite pronaći sve članke u određenom blogu, trebali biste upotrijebiti upit poput ovog:

članci = Blog.objects.all()

Ako želite pronaći sve članke koji su objavljeni u posljednjih mjesec dana, trebali biste upotrijebiti upit poput ovog:

articles_published_in_the_last_month = Blog.objects.filter(published=True)

There are a number of ways to query a Django model. The simplest way is to use the Model.objects.all() method, which will return all objects for that model.

If you want to filter the queryset, you can use the Model.objects.filter(**kwargs) method, where kwargs is a dictionary of field names and values to filter on. For example, if you only wanted objects with a certain value for the 'name' field, you could do:

Model.objects.filter(name='value')

If you want to get a single object from the queryset, you can use the Model.objects.get(**kwargs) method, which will return the first object that matches the given criteria. For example, if you wanted to get an object with a particular 'id' value:

Model.objects.get(id=1)

Ako želite poredati skup upita, možete koristiti metodu Model.objects.order_by(field_name), koja će poredati skup upita prema zadanom polju uzlaznim redoslijedom. Također možete koristiti prefiks '-' za poredak u silaznom redoslijedu:

Model.objects.order_by('-name')

Što je QuerySet

QuerySet je kolekcija povezanih modela koji se mogu zajedno ispitivati. To je prikladan način grupiranja modela zajedno tako da ih možete jednostavno upitati kao jedinicu.

Izrazi upita

Izraz upita moćan je način filtriranja podataka u Djangu. Slično je klauzuli WHERE u SQL upitu, ali se može koristiti s bilo kojim objektom modela.

Na primjer, možete upotrijebiti izraz upita da pronađete sve članke s naslovom koji počinje s "Kako":

articles.filter(title__startswith='Kako')

API Referenca skupa upita

QuerySet API pruža način postavljanja upita za polja modela i povezane podatke. API je modeliran prema naredbi SQL SELECT i omogućuje vam da odredite koja polja želite dohvatiti, kojim redoslijedom želite da se vrate i koliko redaka podataka želite vratiti.

Da biste koristili QuerySet API, prvo izradite objekt modela:

iz django.db import modela class MyModel(models.Model): name = models.CharField(max_length=30)

Zatim stvorite objekt upita:

query = MyModel.objects.create_query() query.select('name').order_by('-name')

Povezani postovi:

Ostavite komentar