Atrisināts: django modeļa vaicājumi

Viena no galvenajām Django modeļa vaicājumu problēmām ir tā, ka tie var būt ļoti detalizēti. Piemēram, ja vēlaties atrast visus attiecīgā emuāra rakstus, jums būs jāizmanto šāds vaicājums:

raksti = Blog.objects.all()

Ja vēlaties atrast visus pēdējā mēneša laikā publicētos rakstus, jums būs jāizmanto šāds vaicājums:

articles_published_in_the_last_month = Blog.objects.filter(publiced=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)

Ja vēlaties pasūtīt vaicājumu kopu, varat izmantot metodi Model.objects.order_by(field_name), kas sakārtos vaicājumu kopu pēc dotā lauka augošā secībā. Varat arī izmantot prefiksu "-", lai sakārtotu dilstošā secībā:

Model.objects.order_by('-name')

Kas ir QuerySet

QuerySet ir saistītu modeļu kolekcija, ko var vaicāt kopā. Tas ir ērts veids, kā grupēt modeļus, lai tos varētu viegli meklēt kā vienību.

Vaicājuma izteiksmes

Vaicājuma izteiksme ir efektīvs veids, kā filtrēt datus pakalpojumā Django. Tas ir līdzīgs WHERE klauzulai SQL vaicājumā, taču to var izmantot ar jebkuru modeļa objektu.

Piemēram, varat izmantot vaicājuma izteiksmi, lai atrastu visus rakstus ar virsrakstu, kas sākas ar “Kā to izdarīt”.

articles.filter(title__startswith='Kā to izdarīt')

Query Set API atsauce

QuerySet API nodrošina veidu, kā vaicāt modeļa laukus un saistītos datus. API ir modelēta pēc SQL SELECT priekšraksta, un tā ļauj norādīt, kurus laukus vēlaties izgūt, kādā secībā vēlaties tos atgriezt un cik datu rindu vēlaties atgriezt.

Lai izmantotu QuerySet API, vispirms izveidojiet modeļa objektu:

no django.db importa modeļu klases MyModel(modeļi.Modelis): nosaukums = modeļi.CharField(maksimālais_garums=30)

Pēc tam izveidojiet vaicājuma objektu:

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

Related posts:

Leave a Comment