Benutzerdefinierte Fehlerseiten für django-cms

8

Angeblich eine triviale Aufgabe auf Server 403/404/500 Fehlerseiten bei der Verwendung von django-cms. Befolgen Sie die Anweisungen in einem alten Forenbeitrag, um dies zu erstellen:

%Vor%

Urls.py hat einige Zeilen wie folgt:

%Vor%

Von traceback django cms kann die 404-Seite nicht finden:

%Vor%

Offensichtlich wurden die erforderlichen benutzerdefinierten Seiten in django-cms mit dem Slug: 'page-not-found' hinzugefügt. Fehle ich etwas Offensichtliches? Wird auf dem Produktionsserver mit debug=False ausgeführt. Ausführen von django-cms 2.4.2 (bearbeiten)

Vielleicht ist es besser, einfach alte Fehlermeldungen mit hartcodierten Stylesheets zu bedienen?

    
mrkre 30.09.2013, 09:05
quelle

3 Antworten

9

Nachdem ich in unzählige Wände gegangen war, um die Probleme zu überdenken, ging ich einfach mit den grundlegenden Handlern 403/404/500:

%Vor%

Erstellen Sie die Vorlagen für jeden Fehler und geben Sie absolute URLs für die Stylesheets ein.

Problem gelöst. Verschwendete Zeit auf etwas so Triviales.

    
mrkre 30.09.2013, 18:26
quelle
3

Hier ist ein funktionierender (mit DEBUG bei True oder False) 404-Handler:

%Vor%     
MechanTOurS 01.04.2014 12:42
quelle
0

BEARBEITEN / Einfache Lösung

Nach mehr Suchen und Nachdenken wäre es eine einfachere Lösung, den Standard / Standard 404.html zu erstellen und darin django-cms statische Platzhalter zu verwenden ... so einfach wie möglich!

Original (funktioniert noch) Beantworten

Nachdem ich versucht habe, meinen Handler404 aus einem alten CMS-Projekt zu aktualisieren und keine Informationen zu diesem Thema zu finden, und die akzeptierte Antwort keine wirkliche Lösung für das Problem ist, habe ich eine Version gefunden und gefunden, die in django-cms 3.4 funktioniert.

Erwähnenswert

  • Löschen Sie _current_page_cache auf der Anfrage
  • set request.current_page oder cms_tags werden Ihre 404-Seite nicht verwenden und leer rendern
  • rufen Sie die Haupt-cms details -Ansicht zum Rendern der Seite
  • auf
  • endlich, rufen Sie response.render() (wie in den Kommentaren erwähnt)

Die Ansicht

%Vor%     
benzkji 13.06.2017 10:59
quelle

Tags und Links