Django-Klassenbasierte generische Ansichten und Authentifizierung

7

Ich bin ziemlich neu in Django (beginnend mit 1.3). Beim Erstellen einer App habe ich vom ersten Tag an mit den neuen klassenbasierten allgemeinen Sichten gearbeitet, indem ich eine Kombination der eingebauten Klassen verwendet habe und sie an den Stellen subklassifiziert habe, an denen ich dem Kontext hinzufügen musste.

Jetzt ist mein Problem, ich muss zu meinen Ansichten zurückkehren und sie nur für eingeloggte Benutzer zugänglich machen. ALLE Dokumente, die ich gefunden habe, zeigen, wie man das mit den alten funktionalen generischen Sichten macht, aber nicht mit klassenbasierten.

Hier ist eine Beispielklasse:

%Vor%

Wie füge ich die Authentifizierung zu den neuen klassenbasierten Ansichten von django hinzu?

    
pwalsh 08.07.2011, 19:26
quelle

3 Antworten

19

Es gibt auch die Option eines Authentifizierungs-Mixins, von dem Sie Ihre Ansichtsklasse ableiten würden. Also dieses Mixin von brack3t.com :

%Vor%

Sie könnten dann neue "Authentifizierung erforderlich" -Sichten wie folgt erstellen:

%Vor%

ohne weitere Zusätze. Fühlt sich sehr ähnlich wie sich nicht zu wiederholen.

    
supervacuo 24.04.2012, 19:41
quelle
6
___ qstnhdr ___ Django-Klassenbasierte generische Ansichten und Authentifizierung ___ answer9933552 ___

Ich beschreibe eine Methode, um eine ListView zu dekorieren:

%Vor%

Nachdem Sie eine klassenbasierte Ansicht wie folgt geschrieben haben, Sie können einen beliebigen funktionsbezogenen Dekorator direkt in die URL einfügen.

%Vor%     
___ qstntxt ___

Ich bin ziemlich neu in Django (beginnend mit 1.3). Beim Erstellen einer App habe ich vom ersten Tag an mit den neuen klassenbasierten allgemeinen Sichten gearbeitet, indem ich eine Kombination der eingebauten Klassen verwendet habe und sie an den Stellen subklassifiziert habe, an denen ich dem Kontext hinzufügen musste.

Jetzt ist mein Problem, ich muss zu meinen Ansichten zurückkehren und sie nur für eingeloggte Benutzer zugänglich machen. ALLE Dokumente, die ich gefunden habe, zeigen, wie man das mit den alten funktionalen generischen Sichten macht, aber nicht mit klassenbasierten.

Hier ist eine Beispielklasse:

%Vor%

Wie füge ich die Authentifizierung zu den neuen klassenbasierten Ansichten von django hinzu?

    
___ tag123djangoclassbasedviews ___ Klassenbasierte Django-Ansichten sind Django-Ansichten, die als Klassen dargestellt werden. So können Sie Ihre Ansichten strukturieren und Code wiederverwenden, indem Sie Vererbung und Mixins nutzen. ___ antwort6629749 ___

Es gibt einen Abschnitt in der Dokumentation zu Dekorationsklassen- Based Views - wenn Sie nur das alte login_required usw. verwenden möchten, ist dies der richtige Weg.

    
___ tag123django ___ Django ist ein serverseitiges Open-Source-Webanwendungs-Framework, das in Python geschrieben wurde. Es wurde entwickelt, um den Aufwand für die Erstellung komplexer datengesteuerter Websites und Webanwendungen zu reduzieren, mit besonderem Fokus auf weniger Code, keine Redundanz und expliziter als implizit. ___ tag123django13 ___ Django 1.3 ist eine Version des Django-Frameworks, die im März 2011 veröffentlicht wurde. Bitte verwenden Sie dieses Tag nur, wenn sich Ihre Frage speziell auf diese Version bezieht. ___ answer10304880 ___

Es gibt auch die Option eines Authentifizierungs-Mixins, von dem Sie Ihre Ansichtsklasse ableiten würden. Also dieses Mixin von brack3t.com :

%Vor%

Sie könnten dann neue "Authentifizierung erforderlich" -Sichten wie folgt erstellen:

%Vor%

ohne weitere Zusätze. Fühlt sich sehr ähnlich wie sich nicht zu wiederholen.

    
___
Ismail Badawi 08.07.2011 19:54
quelle
5

Ich beschreibe eine Methode, um eine ListView zu dekorieren:

%Vor%

Nachdem Sie eine klassenbasierte Ansicht wie folgt geschrieben haben, Sie können einen beliebigen funktionsbezogenen Dekorator direkt in die URL einfügen.

%Vor%     
acid_crucifix 29.03.2012 21:06
quelle