Ratkaistu: django-mallikyselyt

Yksi suurimmista ongelmista Django-mallikyselyissä on, että ne voivat olla hyvin monisanaisia. Jos esimerkiksi haluat löytää tietyn blogin kaikki artikkelit, sinun on käytettävä seuraavaa kyselyä:

artikkelit = Blog.objects.all()

Jos haluat löytää kaikki artikkelit, jotka on julkaistu viimeisen kuukauden aikana, sinun on käytettävä seuraavaa kyselyä:

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)

Jos haluat tilata kyselyjoukon, voit käyttää Model.objects.order_by(field_name) -metodia, joka järjestää kyselyjoukon annetun kentän mukaan nousevassa järjestyksessä. Voit myös käyttää etuliitettä '-' järjestyksessä alenevassa järjestyksessä:

Model.objects.order_by('-nimi')

Mikä on QuerySet

QuerySet on kokoelma toisiinsa liittyviä malleja, joista voidaan tehdä kyselyjä yhdessä. Se on kätevä tapa ryhmitellä malleja yhteen, jotta voit helposti kysyä niitä yhtenä kokonaisuutena.

Kyselylausekkeet

Kyselylauseke on tehokas tapa suodattaa tietoja Djangossa. Se on samanlainen kuin WHERE-lause SQL-kyselyssä, mutta sitä voidaan käyttää minkä tahansa malliobjektin kanssa.

Voit esimerkiksi käyttää kyselylauseketta löytääksesi kaikki artikkelit, joiden otsikko alkaa "Kuinka":

articles.filter(title__startswith='Kuinka')

Query Set API Reference

QuerySet API tarjoaa tavan tehdä kyselyjä mallin kentistä ja niihin liittyvistä tiedoista. API on mallinnettu SQL SELECT -käskyn mukaan, ja sen avulla voit määrittää, mitkä kentät haluat noutaa, missä järjestyksessä ne palautetaan ja kuinka monta riviä tietoja haluat palauttaa.

Jos haluat käyttää QuerySet-sovellusliittymää, luo ensin malliobjekti:

osoitteesta django.db tuontimallien luokka OmaModel(mallit.Malli): nimi = mallit.CharField(max_length=30)

Luo sitten kyselyobjekti:

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

Related viestiä:

Jätä kommentti