Ke zjistovani poctu zaznamu je nevhodne pouzivat funkci len – stahne vsechny zaznamy z DB a spocita je misto toho aby se proste DB zeptala na pocet (SELECT COUNT(*) …) jako do tela metoda .count()
Misto .filter()[0] je lepsi vetsinou pouzit .get(), ma tu vyhodu ze sam hlida ze DB ma vratit prave jeden objekt a neni tak krypticky.
Mozna by take stalo za to zminit lazy vlastnost querysetu a jak se daji querysety za sebou retezit, tedy ze muzu udelat
>>> q = Store.objects.all()
>>> q = q.filter(id__lte=10)
>>> q = q.exclude(id=1)
>>> q = q.order_by('-id')
>>> stores = q[:2]
A ve vysledku se udela jen jeden dotaz do DB. Obecne dotazy do DB se provedou pri iterovani pres queryset, sliceovani ([]) a volani .get ci .count. Specialni pripad je v ramci prace v interaktivnim rezimu, ktery vzdy vola repr() na vracene hodnote aby ho zobrazil uzivateli – repr() u querysetu vyvola iteraci a dotaz se tak provede.
Jinak dekuji za clanky, myslim si, ze je neco takoveho potreba :).