Rešeno: poizvedbe modela django

Ena od glavnih težav pri poizvedbah modela Django je, da so lahko zelo podrobne. Na primer, če želite najti vse članke v določenem spletnem dnevniku, bi morali uporabiti takšno poizvedbo:

članki = Blog.objects.all()

Če bi želeli najti vse članke, ki so bili objavljeni v zadnjem mesecu, bi morali uporabiti takšno poizvedbo:

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)

Če želite razvrstiti nabor poizvedb, lahko uporabite metodo Model.objects.order_by(field_name), ki bo nabor poizvedb razporedila po danem polju v naraščajočem vrstnem redu. Za razvrščanje v padajočem vrstnem redu lahko uporabite tudi predpono '-':

Model.objects.order_by('-name')

Kaj je QuerySet

QuerySet je zbirka povezanih modelov, po katerih je mogoče poizvedovati skupaj. To je priročen način za združevanje modelov, tako da jih lahko preprosto poizvedujete kot enoto.

Poizvedbeni izrazi

Izraz poizvedbe je zmogljiv način za filtriranje podatkov v Djangu. Podoben je klavzuli WHERE v poizvedbi SQL, vendar ga je mogoče uporabiti s katerim koli objektom modela.

Uporabite lahko na primer izraz poizvedbe, da poiščete vse članke z naslovom, ki se začne z »Kako«:

articles.filter(title__startswith='Kako')

Referenca API-ja za niz poizvedb

API QuerySet ponuja način za poizvedovanje po poljih modela in povezanih podatkih. API je modeliran po stavku SQL SELECT in vam omogoča, da določite, katera polja želite pridobiti, v kakšnem vrstnem redu jih želite vrniti in koliko vrstic podatkov želite vrniti.

Če želite uporabiti API QuerySet, najprej ustvarite objekt modela:

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

Nato ustvarite predmet poizvedbe:

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

Podobni objav:

Pustite komentar