Isonjululwe: imibuzo yemodeli ye-django

Enye yeengxaki eziphambili ngemibuzo yemodeli ye-Django kukuba zinokuba ne-verbose kakhulu. Umzekelo, ukuba ufuna ukufumana onke amanqaku kwibhlog enikiweyo, kuya kufuneka usebenzise umbuzo onje:

amanqaku = Blog.objects.all()

Ukuba ubufuna ukufumana onke amanqaku apapashiweyo kwinyanga ephelileyo, kuya kufuneka usebenzise umbuzo onje:

articles_published_in_the_last_month = Blog.objects.filter(published=Yinyani)

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)

Ukuba ufuna uku-odola i-queryset, ungasebenzisa i-Model.objects.order_by(field_name) indlela, eya kuodola i-queryset ngumhlaba onikiweyo ngokunyuka komyalelo. Ungasebenzisa kwakhona '-' isimaphambili sokucwangcisa ngolandelelwano oluhlayo:

Model.objects.order_by('-igama')

Yintoni i-QuerySet

I-QuerySet yingqokelela yeemodeli ezinxulumeneyo ezinokubuzwa kunye. Yindlela efanelekileyo yokuhlanganisa iimodeli ndawonye ukuze ukwazi ukubuza ngokulula njengeyunithi.

Iinkcazo Zombuzo

Ukuchazwa kombuzo yindlela enamandla yokucoca idatha kwi-Django. Iyafana negatya LAPHO kumbuzo weSQL, kodwa inokusetyenziswa nayo nayiphi na into yomfuziselo.

Umzekelo, unokusebenzisa ibinzana lombuzo ukufumana onke amanqaku anesihloko esiqala ngo "Njani":

amanqaku.filtha(isihloko__startswith='Njani')

Umbuzo Seta i-API Reference

I-QuerySet API ibonelela ngendlela yokubuza amasimi emodeli kunye nedatha ehambelanayo. I-API ilandelwa emva kwengxelo ye-SQL KHETHA, kwaye ikuvumela ukuba uchaze ukuba yeyiphi imihlaba ofuna ukuyibuyisela, ngendlela ofuna ukuyibuyisela ngayo, kwaye mingaphi imiqolo yedatha ofuna ukuyibuyisela.

Ukusebenzisa i-QuerySet API, qala wenze imodeli yento:

isuka kwi-django.db yokungenisa imifuziselo yodidi iMyModel(models.Model): igama = imifuziselo.CharField(max_length=30)

Emva koko yenza into yombuzo:

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

Izithuba ezihambelanayo:

Shiya Comment