/ / Auf benutzerdefinierte 404-HTML-Seite in DjangoCMS umleiten - Django, Redirect, Django-Vorlagen, Django-cms

Umleiten zu benutzerdefinierten 404 HTML-Seite in DjangoCMS - Django, Redirect, Django-Vorlagen, Django-cms

Wie kann ich den Benutzer an meine Gewohnheit umleiten? 404.html Seite, wenn er einen falschen Pfad eingibt?

ansichten.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

ich habe auch TEMPLATE_DEBUG = True und DEBUG = False in meinem settings.py Datei. Hilfe bitte?

Kannst du mir auch sagen, ob diese Methoden aus sind? views.py sind sie in Ordnung oder könnten sie besser umgeschrieben werden?

Vielen Dank

Antworten:

3 für die Antwort № 1

Fügen Sie 404.html in der Nähe von base.html (Hauptordnervorlagen) hinzu. und wenn ein Fehler 404 auftritt, nimmt Django selbst Ihre 404-Seite

in settings.py

DEBUG = False

TEMPLATE_DEBUG = True

ALLOWED_HOSTS = ["yourweb.com"]