سلام استاد خسته نباشید
ممنونم از آموزش خوبتون ...
توی جلسه ۲۱ پیرو فرمایش شما و داکیومنت جنگو برای اینکه Http404 فایل تمپلیت دلخواه رو نمایش بده باید توی تمپلیت ها فایلی به اسم 404.html قرار بدیم.
setting.py
DEBUG = False
ALLOWED_HOSTS = ['*']
views.py
def show_product_page(request, product_name):
if product_name not in products:
raise Http404
return render(request, 'App1/show_product.html', {'name' : product_name})
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('show-product', views.show_product),
path('show-product-page/<str:product_name>', views.show_product_page, name='show_product_page'),
]
فایل 404.html در دایرکتوری روت پروژه فولدر templates قرار دادم و اونو توی setting.py اضافه کردم اما نتیجه ای که نشون میده اینه و با فایل 404.html متفاوته
سلام خدمت شما دوست عزیز
فایل urls.py رو هم تغییر دادین دوست من؟
خیر
روشی که استفاده کردین حالتی هستش که صرفا خود جنگو با استفاده از مسیریابی فایل های html مورد نظر رو پیدا میکنه
پیشنهاد میکنم از روش دوم استفاده کنین
به این صورت که یک view برای مدیریت خطای 404 ایجاد کنین
def page_not_found_view(request, exception):
context = {
'title': _('Page not fount'),
}
return render(request, '404.html', context)
و داخل فایل urls اصلی پروژه این کد رو قرار بدین:
handler404 = 'views.page_not_found_view'
این روش گزینه ی بهتری هستش برای مدیریت خطاها
همینطور میتونین برای خطای 500 هم همینکار رو انجام بدین
ممنونم از راهنماییتون
ولی handler404 موفق نمیشه ماژول views رو پیدا کنه
من کنار فایل url اصلی هم فایل views رو ساختم ولی کمکی نکرد
آدرس رو باید از اسم app شروع کنید دوست من
ینی اگر این view رو داخل app ای با نام base قرار دادین باید آدرس به این صورت باشه:
handler404 = 'base.views.page_not_found_view'
ممنونم استاد
عذر میخوام که وقتتون رو گرفتم
خواهش میکنم دوست من این چه حرفیه
انجام وظیفه میکنم
اگر سوال دیگه ای داشتین حتما مطرح کنید
موفق باشین :)