سلام
وقت شما بخیر
در جلسه ده در خصوص httpresponseredirect من دچار مشکل شدم یعنی متوجه نمی شم قطعه کد زیر چطور عمل ریدایرکت رو به تابع بعدی انجام می ده؟ مثلا اگر 10 تا تابع داشتیم چطور باید به تابع مورد نظرمون ریدایرکت می کردیم
یا مثلا چرا f' (اف استرینگ ) گذاشتین
return HttpResponseRedirect(f'/days/{redirect_day}')
واین که اگه در urls روت پروژه نمی خواستیم days یا هر چیز دیگه ای رو بذاریم مثل زیر همونطور که خودتون در جلسات اول مثال زدین
path('/',include('challenges.urls')),
چطور باید بهش ریدارکت می کردیم مثلا من به شکل زیر تغییرش دادم که کار نکرد
return HttpResponseRedirect(f'//{redirect_day}')
با سلام.
در مورد این مطلب
قطعه کد زیر چطور عمل ریدایرکت رو به تابع بعدی انجام می ده؟
اگر منظورتان در مورد خود HttpResponseRedirect است، و چگونگی کارکرد آن، می توانید تحقیق کنید ولی تفاوت اصلی آن با HttpResponse در Status Code ی است که بر می گرداند. که برای HttpResponseRedirect معادل 302 و برای HttpResponse معادل 200 است.
اگر 10 تا تابع داشتیم چطور باید به تابع مورد نظرمون ریدایرکت می کردیم
یا با استفاده از یک گزاره ی شرطی، بسته به شرایط دلخواهتان، کاربر را به تابع مورد نظر هدایت کنید و یا مانند همین مثال
return HttpResponseRedirect(f'/days/{redirect_day}')
به منظور داینامیک کردن URL وارد شده از سوی کاربر (یا برنامه) ، با استفاده از f string که پارامتر redirect_day را به انتهای URL اضافه کرده و بر حسب مقدار دریافتی آن، تابع متناظر را فراخوانی می کند، عمل کنید.
دستور include را به شکل زیر:
path('',include('challenges.urls')),
و دستور redirect را به شکل زیر تغییر دهید:
return HttpResponseRedirect(f'/{redirect_day}')
موفق باشید.
سلام و ممنون از پاسخ جامع شما
متشکرم