• 1401/04/13

نمایش جزییات محصولات :

درود

من این یه قسمت رو یه هفتس دارم فیلم های مختلف میبینم 

نفهمیدم چی شد آخرش :( 

 

مربوط به اون قسمت میشه که جزییات محصول رو قراره نمایش بدیم در یه صفحه دیگه با کلیک روی دکمه ,,,, 

یعنی چی id=id ؟؟ ...........اینجا رو متوجه شدم  که این id همون primarykey. pk هست 

ولی یعنی چه این کلا ؟ این قسمت از کد چی کار میکنه ؟؟ اصلا نفهمیدم چی شد :( 

ممنون میشم توضیح بدیییدددد  😭😭😭

 

  • 1401/04/13
  • ساعت 17:55

با سلام.

 

برای نمایش جزییات یک Product باید اطلاعات آنرا از جدول مربوطه fetch (واکشی) کنیم.

برای اینکار:

product = Product.objects.get(id = id)

یک متغیر به نام product تعریف می کنیم و یک Query به جدول Products می زنیم.

با متد get، آن Product هایی را انتخاب می کنیم که id آنها برابر با ProductID ی باشد که از طریق URL از کاربر دریافت کردیم در اینجا چون id ی که از URL دریافت می کنیم را نیز id نامگذاری کردیم ممکن است کمی سردرگم شوید (id = id).

 

اگر در URLS های App مثلاً به این صورت بنویسید:

path('products/<productId>', product_detail),

کدهای شما به این صورت خواهد شد:

product = Product.objects.get(id = productId)

 

موفق باشید.


  • 1401/04/13
  • ساعت 18:00

سلام دوست من

پاسخ دوستمون کاملا صحیح هستش

اگر باز هم ابهامی وجود داره بفرمایین تا راهنماییتون کنم


  • 1401/04/14
  • ساعت 22:29

ممنون weby , دمت گرم این قدر وقت گذاشتی :)  💛

یه سوال دیگه هم دارم ممنون میشه استاد یه یکی از دوستان پاسخ بدند

الان با توجه به عکس بالا  ما یه فانگشن داریم که دوتا مقدار میگیره (product detail) ... یه request که فکر کنم پیش فرض توی جنگو نوشته شده  یعنی درخواست اجرای برنامه , یه id که هیچ جا هیچ مقداری بهش پاس ندادیم که یه کاری کنه برامون توی اون فنگشن  ,,, اون id توی تابع product detail  قراره چه کار کنه ؟؟ primary key منظورم نیست اون ای دی منظورمه که اونجاعه ====>   def News_Detail(request, id): 

این یه مقدار پیش فرض جنگو هست ؟؟ چون چیزی بهش پاس نخواهیم داد در ادامه کار  ,, اون id چه کار میکنه ؟؟؟ از قبل توی جنگو تعریف شده ؟؟ کارش چیه ؟؟؟  اونجا هست بعدش مقایسه کردیم که اگر primary key برابر بود با اون id بیا یه کاری انجام بده 

 

اون قسمتی که weby جان توضیخ داد رو متوجه شدم   

   دقیقا گیرم اینجاس الان ( این ای دی لعنتی  def News_Detail(request, id):  )

 

 

 نمیدونم منظورمو گرفتید یا نه  حسابی گیج شدم 😭😫😫😭😭😭

 


  • 1401/04/15
  • ساعت 11:40

سلام دوست من

نه دوست عزیز این مقدار پیش فرض جنگو نیست. این اسم ، اسمی هستش که شما برای گرفتن مقدار از کاربر از طریق url تنظیم میکنین. ینی مثلا اگه به نام کاربر نیاز داشته باشین میتونین توی url یک پارامتر قرار بدین که جنگو اون رو با نام دلخواه شما مثل user_name میگیره 

کلمه ی id هم اسمی هستش که به دلخواه قرار داده شده و میتونین اسم دیگه ای براش در نظر بگیرین

فقط در نظر داشته باشین که این اسم در فایل urls برای آدرس مربوط هم تعیین میشه که باید با اسمی که در متد در نظر گرفتین یکسان باشه

به عنوان مثال اگه به urls نگاه کنین متوجه میشین که کلمه ی id برای product detail هم قرار داده شده


logo-samandehi