/ / Przekierowanie do niestandardowej strony html 404 w DjangoCMS - django, przekierowanie, szablony django, django-cms

Przekierowanie do niestandardowej strony html 404 w DjangoCMS - django, przekierowanie, szablony django, django-cms

Jak mogę przekierować użytkownika do mojego niestandardowego 404.html stronę, jeśli wejdzie na złą drogę?

views.py:

from django.shortcuts import render, render_to_response, redirect
from django.template import RequestContext

import threading

def url_redirect(request):
return render_to_response("blog.html", RequestContext(request))

def post_redirect(request):
return render_to_response("post.html", RequestContext(request))

def privacy_redirect(request):
return render_to_response("privacy.html", RequestContext(request))

def terms_conditions_redirect(request):
return render_to_response("terms.html", RequestContext(request))

def page_404(request):
return render_to_response("404.html", RequestContext(request))

urls.py:

from __future__ import print_function
from cms.sitemaps import CMSSitemap
from django.conf.urls import *
from django.conf.urls.i18n import i18n_patterns
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import admin
from django.conf import settings
from django.conf.urls import patterns

admin.autodiscover()

urlpatterns = i18n_patterns("",
url(r"^admin/", include(admin.site.urls)),
url(r"^sitemap.xml$", "django.contrib.sitemaps.views.sitemap", {"sitemaps": {"cmspages": CMSSitemap}}),
url(r"^select2/", include("django_select2.urls")),

url(r"^blog", "website.views.url_redirect", name="url-redirect"),
url(r"^post", "website.views.post_redirect", name="post-redirect"),
url(r"^privacy", "website.views.privacy_redirect", name="privacy-redirect"),
url(r"^terms", "website.views.terms_conditions_redirect", name="terms_conditions-redirect"),
url(r"^404", "website.views.page_404", name="page_404"),
url(r"^", include("cms.urls")),
)

# This is only needed when using runserver.
if settings.DEBUG:
urlpatterns = patterns("",
url(r"^media/(?P<path>.*)$", "django.views.static.serve",
{"document_root": settings.MEDIA_ROOT, "show_indexes": True}),
) + staticfiles_urlpatterns() + urlpatterns

też mam TEMPLATE_DEBUG = True i DEBUG = False w moim settings.py plik. Proszę o pomoc?

Czy możesz mi powiedzieć, czy te metody pochodzą z views.py są w porządku lub czy można je poprawić w lepszy sposób?

Dzięki

Odpowiedzi:

3 dla odpowiedzi № 1

dodaj 404.html w pobliżu base.html (główne szablony folderów) a kiedy wystąpi błąd 404, Django sam bierze swoją stronę 404

w pliku settings.py

DEBUG = False

TEMPLATE_DEBUG = True

ALLOWED_HOSTS = ["yourweb.com"]