• 1402/10/11

بدست آوردن مقدار dynamic url :

وقت بخیر استاد.

اول از هرچیزی لازم تشکر کنم ازتون خیلی در زمینه جنگو به من کمک کردید  امیدوارم حالتون همیشه عالی باشه.

من در فایل url یک path با این مشخصات دارم 

path('/<cat/<cat>/tag/<tag>/', views.ProductListView.as_view(), name='product-tag-list')

نیاز دارم که مقدار کت رو از طریق url بدست بیارم از request.GET.get('cat) استفاده کردم none بر میگردوند.

دستور request.GET رو پرینت کردم  <QueryDict: {}> برگردوند.

مقدار کت رو به این شکل به فانکشن دادم 

: def Product_tags_component(request:HttpRequest,cat) 

این رو گفت : Product_tags_component() missing 1 required positional argument: 'cat'

چطور می تونم از طریق url مقدایر رو بگیرم قاعدتا نباید مشکلی وجود داشته باشه خیلی ممنون میشم کمکم کنید.

 

  • 1402/10/11
  • ساعت 08:45

سلام دوست من

خوشحالم دوره براتون مفید بوده

مشکل فکر میکنم از این هستش که شما 2 تا cat با اسم یکسان در url تعریف کردین و به مشکل خورده


  • 1402/10/11
  • ساعت 13:00

خیر.

نام هارو تغییر دادم فرقی ایجاد نشد


  • 1402/10/15
  • ساعت 09:50

خطا مربوط به product tags component هستش

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

کدهای مربوط به این کامپوننت رو بررسی کنین که چه متغیر هایی رو لازم داره و براش ارسال کنین


  • 1402/10/16
  • ساعت 17:02

url به این شکل :

/http://127.0.0.1:8000/products/cat/lundury

پس مقدار کت یک path پارامتر و طبق گفته شما کت رو به فانکشن پاس دادم و طبیعتا باید فرستاده بشه.

ولی توی ارور میگه که این ارگومنت موجود نیست:

TypeError at /products/cat/lundury/

Product_tags_component() missing 1 required positional argument: 'cat'


  • 1402/10/18
  • ساعت 21:23

بلاخره مشکل حل شد.

چون این فانکشن یک کامپوننت بود و به صورت Render_partial اجرا می شد path بهش ارسال نمی شد.

به جای اون به ClassBaseview فرستاده می شد.

با این دستور ('cat')category_name = self.kwargs.get دیتا رو گرفتم و به تمپلیت clasebaseview پاس دادم

و بعد به این صورت دیتا رو برای فانکشن فرستادم .

{% category_name=cat 'product_module.views.Product_tags_component'  render_partial  %}

 

متشکر از وقتی که گذاشتید.


 


  • 1402/10/20
  • ساعت 08:36

خوشحالم مشکلتون برطرف شده دوست من

موفق باشین :)