ویدیو آموزش عبارات F در جنگو

امیرحسین بیگدلو April 2023

عبارت F به شما اجازه میده که دو فیلد از یک آبجکت رو با هم مقایسه کنید.

در این مقاله میخوام از مدل زیر استفاده کنم. این مدل برای ذخیره اطلاعات مربوط به فیلماست:

class Movie(models.Model):
    name = models.CharField(max_length=30)
    budget = models.IntegerField()
    revenue = models.IntegerField()
    year = models.IntegerField()

مدل بالا چهارتا فیلد داره: اسم فیلم, بودجه ساخت, فروش فیلم, سال ساخت.

خب حالا فکر کنید به شما میگن داخل این جدول جوری query بزنید که فقط فیلم هایی که "مقدار بودجه بیشتر از مقدار فروش بوده" رو به ما نشون بده. چیکار میکنید؟

یا فکر کنید به شما بگن جوری query بزنید که فیلم ها بر اساس year ترتیب بندی بشن و فیلم هایی که مقدار year اونها null هستش آخر نشون داده بشه. باز چیکار میکنید؟

اینجا میتونید از F استفاده کنید.

پاسخ query اول:

Movie.objects.filter( budget__gt=F('revenue') )

در مثال بالا گفتم اونهایی رو برام بیار که مقداره فیلد budget بیشتر باشه از مقدار revenue

پاسخ query دوم:

Movie.objects.order_by( F('year').asc(nulls_last=True) )

در کد بالا گفتم نتایج رو بر اساس year ترتیب بندی کن و اونهایی که مقدار year برابر با null هستش رو آخر نشون بده.

ویدیوهای مشابه



ارسال نظر


محسن

9 ماه قبل پاسخ به نظر

سلام وقت بخیر
چنتا مورد دیگه هست توی داکومنت جنگو - اصلا معلوم نیست چیکار میکنن

ممکنه یه آموزش در موردش بسازید ؟

موارد زیر مربوط به دیتابیس هستند
Exist
OuterRef
Func
Value
Subquery
ExpressionWrapper

آموزش های خارجی اصلا معلوم نیست چی میگن - هر چی نگاه کردم نفهمیدم
میشه خواهش کنم یه ویدیو تک قسمتی بسازید موارد بالا رو توضیح بدید

اینم لینکش :
https://docs.djangoproject.com/en/5.0/ref/models/expressions/

ممنونتون میشم واقعا

ارسال نظر



محمود دیدا

2 سال قبل پاسخ به نظر

استاد واقعا در برابر مبلغ ناچیز من به کلی نکته دست پیدا کردم که مدتا تو دوره های مختلف به دونبالشون بودم . مرسی ، مرسی ؟؟!!!
قبلا هم برات نوشته بودم که دوره ای برا پیاده سازی جنگو مثلا با داکر یا nginx برگزار کنی با این دید که تعداد زیادی کار بر بتونن به بک اند ما متصل بشن . البته اگر صلاح می دونید.
بازم کاملا از ته قلبم از شما سپاسگذارم.

ارسال نظر



حامد حاجیلوپور

2 سال قبل پاسخ به نظر

با سلام و احترام
مهندس یه سوال داشتم
من یه جدول لیست افراد دارم
و یه جدول دیگه دارم مشخصلات تحصیلاتی فرد که فارن کی شده به جدول افراد
الان تو صفحه لیست افراد میخوام فرد انتخاب کنم و از فرم( ورود / ویرایش) اطلاعات تحصیلی وارد یا ویرایش کنم
مشکلم اینکه که اولا فیلد فرد با انتخاب خود فرد انتخاب پر بشه و هنگام ویرایش kwargs فرد و تحصیلات باهم تداخل میکنه نمیتوتنم از هم جدا کنم
امکانش هست راهنمایی کنید

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
نمیدونم حامد جان بدون دیدن کد نمیتونم چیزی بگم

مونگارد