Rešeno: upiti django modela

Jedan od glavnih problema sa upitima Django modela je taj što oni mogu biti vrlo opširni. Na primjer, ako želite pronaći sve članke na datom blogu, trebali biste koristiti upit poput ovog:

članci = Blog.objects.all()

Ako želite pronaći sve članke koji su objavljeni u posljednjih mjesec dana, trebali biste koristiti upit poput ovog:

articles_published_in_the_last_month = Blog.objects.filter(published=Tačno)

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)

Ako želite da naručite skup upita, možete koristiti metodu Model.objects.order_by(field_name), koja će poredati skup upita prema datom polju u rastućem redoslijedu. Također možete koristiti prefiks '-' za redoslijed u opadajućem redoslijedu:

Model.objects.order_by('-name')

Šta je QuerySet

QuerySet je kolekcija povezanih modela koji se mogu ispitivati ​​zajedno. To je zgodan način da grupišete modele zajedno tako da ih možete lako ispitivati ​​kao jedinicu.

Izrazi upita

Izraz upita je moćan način filtriranja podataka u Djangu. Slično je klauzuli WHERE u SQL upitu, ali se može koristiti sa bilo kojim objektom modela.

Na primjer, možete koristiti izraz upita da pronađete sve članke s naslovom koji počinje s "Kako":

articles.filter(title__startswith='Kako')

Referenca za API skupa upita

QuerySet API pruža način za ispitivanje polja modela i povezanih podataka. API je modeliran prema SQL SELECT izrazu i omogućava vam da odredite koja polja želite dohvatiti, kojim redoslijedom želite da se vrate i koliko redova podataka želite vratiti.

Da biste koristili QuerySet API, prvo kreirajte objekt modela:

iz django.db uvoz modela klasa MyModel(models.Model): ime = models.CharField(max_length=30)

Zatim kreirajte objekat upita:

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

Slični postovi:

Ostavite komentar