• 1403/10/27

مشکل در ایجاد ارر 404 شخصی :

سلام استاد خسته نباشید 
ممنونم از آموزش خوبتون ...

توی جلسه ۲۱ پیرو فرمایش شما و داکیومنت جنگو برای اینکه 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 متفاوته

 

  • 1403/10/28
  • ساعت 00:36

سلام خدمت شما دوست عزیز

فایل urls.py رو هم تغییر دادین دوست من؟


  • 1403/10/28
  • ساعت 12:23

خیر 


  • 1403/10/28
  • ساعت 15:29

روشی که استفاده کردین حالتی هستش که صرفا خود جنگو با استفاده از مسیریابی فایل های 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 هم همینکار رو انجام بدین

 


  • 1403/10/29
  • ساعت 13:43

ممنونم از راهنماییتون
ولی handler404  موفق نمیشه ماژول views رو پیدا کنه 

من کنار فایل  url اصلی هم فایل views رو ساختم ولی کمکی نکرد 


  • 1403/10/30
  • ساعت 08:59

آدرس رو باید از اسم app شروع کنید دوست من

ینی اگر این view رو داخل app ای با نام base قرار دادین باید آدرس به این صورت باشه:

handler404 = 'base.views.page_not_found_view'

  • 1403/10/30
  • ساعت 17:57

ممنونم استاد 
عذر میخوام که وقتتون رو گرفتم 
 


  • 1403/10/30
  • ساعت 23:14

خواهش میکنم دوست من این چه حرفیه

انجام وظیفه میکنم

اگر سوال دیگه ای داشتین حتما مطرح کنید

موفق باشین :)


logo-enamadlogo-samandehi