Nalutas: mga query sa modelo ng django

Ang isa sa mga pangunahing problema sa mga query sa modelo ng Django ay ang mga ito ay napaka-verbose. Halimbawa, kung gusto mong mahanap ang lahat ng artikulo sa isang partikular na blog, kakailanganin mong gumamit ng query na tulad nito:

mga artikulo = Blog.objects.all()

Kung gusto mong mahanap ang lahat ng mga artikulo na nai-publish noong nakaraang buwan, kakailanganin mong gumamit ng query na tulad nito:

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)

Kung gusto mong mag-order ng queryset, maaari mong gamitin ang Model.objects.order_by(field_name) na paraan, na mag-order ng queryset ayon sa ibinigay na field sa pataas na pagkakasunud-sunod. Maaari mo ring gamitin ang '-' prefix upang mag-order sa pababang pagkakasunud-sunod:

Model.objects.order_by('-name')

Ano ang QuerySet

Ang QuerySet ay isang koleksyon ng mga kaugnay na modelo na maaaring i-query nang magkasama. Ito ay isang maginhawang paraan upang pagsama-samahin ang mga modelo upang madali mong i-query ang mga ito bilang isang yunit.

Mga Ekspresyon ng Query

Ang isang query expression ay isang mahusay na paraan upang i-filter ang data sa Django. Ito ay katulad ng isang sugnay na WHERE sa isang query sa SQL, ngunit maaari itong magamit sa anumang object ng modelo.

Halimbawa, maaari kang gumamit ng query expression upang mahanap ang lahat ng mga artikulo na may pamagat na nagsisimula sa "Paano":

articles.filter(title__startswith='How to')

Query Set API Reference

Nagbibigay ang QuerySet API ng paraan upang mag-query ng mga field ng modelo at nauugnay na data. Ang API ay na-modelo pagkatapos ng SQL SELECT statement, at nagbibigay-daan sa iyong tukuyin kung aling mga field ang gusto mong kunin, sa anong pagkakasunud-sunod na gusto mong ibalik ang mga ito, at kung ilang row ng data ang gusto mong ibalik.

Upang gamitin ang QuerySet API, lumikha muna ng object ng modelo:

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

Pagkatapos ay lumikha ng isang query object:

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

Kaugnay na mga post:

Mag-iwan ng komento