Ixazululiwe: imibuzo yemodeli ye-django

Enye yezinkinga ezinkulu ngemibuzo yemodeli ye-Django ukuthi ingaba nezwi kakhulu. Isibonelo, uma ufuna ukuthola zonke izindatshana kubhulogi enikeziwe, uzodinga ukusebenzisa umbuzo ofana nalo:

izihloko = Blog.objects.all()

Uma ubufuna ukuthola zonke iziqephu zendatshana ezishicilelwe enyangeni edlule, uzodinga ukusebenzisa umbuzo ofana nalo:

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)

Uma ufuna uku-oda i-queryset, ungasebenzisa indlela ye-Model.objects.order_by(field_name), ezo-oda isethi yemibuzo ngenkambu enikeziwe ngendlela ekhuphukayo. Ungasebenzisa futhi isiqalo esithi '-' ukuze uhlele ngendlela eyehlayo:

Model.objects.order_by('-name')

Iyini i-QuerySet

I-QuerySet iqoqo lamamodeli ahlobene angabuzwa ndawonye. Kuyindlela elula yokuhlanganisa amamodeli ndawonye ukuze ukwazi ukuwabuza kalula njengeyunithi.

Izinkulumo Zombuzo

Isisho sombuzo siyindlela enamandla yokuhlunga idatha ku-Django. Kuyafana nesigatshana esithi LAPHO embuzweni we-SQL, kodwa singasetshenziswa nanoma iyiphi into eyimodeli.

Isibonelo, ungasebenzisa isisho sombuzo ukuthola zonke iziqephu zendatshana ezinesihloko esiqala ngokuthi “Ukwenziwa kanjani”:

articles.filter(title__startswith='Indlela yokwenza')

Query Setha API Reference

I-QuerySet API inikeza indlela yokubuza izinkambu zemodeli nedatha ehlobene. I-API imodelwa ngemuva kwesitatimende se-SQL KHETHA, futhi ikuvumela ukuthi ucacise ukuthi yiziphi izinkambu ofuna ukuzibuyisa, ufuna zibuyiswe ngendlela elandelanayo, nokuthi mingaki imigqa yedatha ofuna ukuyibuyisela.

Ukuze usebenzise i-QuerySet API, qala udale into eyimodeli:

kusuka ku-django.db amamodeli wokungenisa ekilasini i-MyModel(amamodeli.Model): igama = amamodeli.CharField(max_length=30)

Bese udala into yombuzo:

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

Okuthunyelwe okuhlobene:

Shiya amazwana