جنگولرن
3.78K subscribers
287 photos
74 videos
31 files
554 links
آموزش Django و بستگان
Download Telegram
#پست_جدید

توی پست قبلی درمورد lazy بودن کوری ست ها صحبت کردیم


توی این پست میخوایم درموردش عمیق تر بشیم


توجه❗️
تمام مثال های این پست با توجه به معماری MVT در نظر گرفته شده است.

به مثال زیر توجه کنید 👇

def get_users_list(request): 

users = User.objects.all()

return render(request, "panel/ users.html", {"users": users})

خب بنظرتون توی این مرحله کوری ست evaluate میشه؟

خیر هیچوقت در این مرحله evaluate نمیشه و توی تمپلیت وقتی که داریم روش یه عملیتای انجام میدیم evaluate میشه ( جلوتر توضیح میدم)



به این مثال توجه کنید 👇

{% for user in users %} 

<h1> {{user.name}} </h1>

{% endfor %}


همونطور که میبینید دراین کد ما اومدیم درون تمپلیت روی users حلقه for زدیم و اسامی کاربران رو گرفتیم

با توجه به lazy بودن کوری ست ها که در پست قبل توضیح دادم در مرحله حلقه زدن عملیات evaluation صورت میگیره و کوری ست تبدیل به کد sql میشه و به دیتا بیس فرستاده میشه و ریزالت رو برمیگردونه



پس بازم اینجا اثبات شد فقط وقتی کوری ست اجرا میشه که بهش نیاز پیدا کنیم



#جنگو #کوری_ست #lazy_querysets



@ninja_learn_ir
4👍4