Middle
165
QuerySet қолданғанда дерекқорға сұраулар қашан орындалады?
AI-дан жауап
sobes.tech AI
QuerySet қолданғанда дерекқорға сұрау жасалуы оның бағалау кезінде орын алады. Бұл келесі жағдайларда болады:
- QuerySet-ті қайталау.
- QuerySet-тің кескінін пайдалану (мысалы,
queryset[0]). len()функциясын QuerySet-те шақыру.list()функциясын QuerySet-те шақыру.- QuerySet-тің бір әдісін шақыру, ол QuerySet қайтармайды (мысалы,
first(),last(),count(),exists(),aggregate(),annotate()қосымша сүзгілеусіз).
# Мысал қайталау
for obj in MyModel.objects.all():
pass # Мұнда дерекқорға сұрау орындалады
# Мысал кескінмен
first_obj = MyModel.objects.all()[0] # Мұнда дерекқорға сұрау орындалады
# len() мысалы
count = len(MyModel.objects.all()) # Мұнда дерекқорға сұрау орындалады
# list() мысалы
all_objects_list = list(MyModel.objects.all()) # Мұнда дерекқорға сұрау орындалады
# first() мысалы
one_obj = MyModel.objects.filter(name='test').first() # Мұнда дерекқорға сұрау орындалады
# count() мысалы
total = MyModel.objects.count() # Мұнда дерекқорға сұрау орындалады
QuerySet-тер "сабырлы" (lazy). Олар SQL сұрауын құрастырады, бірақ оны нақты деректер қажет болғанша орындамайды.