Ich benutze django 1.1. die docs
http://docs.djangoproject.com/en/1.1/topics/auth/#topics-auth
zum is_active-Flag heißt es
Dies hat keinen Einfluss darauf, ob der Benutzer sich anmelden kann. Nichts im Authentifizierungspfad prüft das is_active-Flag, wenn Sie also die eine Anmeldung ablehnen wollen, weil is_active Falsch ist, müssen Sie dies in Ihrer in Ihrer eigenen Login-Ansicht überprüfen. Wie auch immer, Berechtigungsprüfung mit den Methoden wie has_perm() prüft dieses Flag und gibt immer False für inaktive Benutzer.
Ich verwende django-registration (neueste Version 0.8 alpha) und verwende alle Standard-Backends. Die gesamte Prämisse von django-registration basiert auf dem is_active-Flag, d.h. es wird nur gesetzt, nachdem der Benutzer aktiviert wurde. Allerdings kann ich sehen, dass, wenn ein Benutzer sich anmeldet es django.contrib.auth.views.login verwendet. ich kann dies aus dem Code in auth_urls.py sehen.
Wenn sich ein Benutzer anmeldet, aber noch nicht aktiviert wurde, soll eine Meldung angezeigt werden, die in etwa lautet: "Sie haben Ihr Konto nicht aktiviert".
Derzeit ist das Standardverhalten, dass die Fehlermeldung des Formulars lautet: "Benutzername und Passwort stimmen nicht überein".
Ich verwende auch den Login-Dekorator in meinen Ansichten
@login_required
私の疑問は
EDIT : Danke James und Henry. Ich glaube, ich habe meine Fragen nicht sehr gut beschrieben. Ich habe das neu gemacht.
- In der Django-Dokumentation steht, dass is_active nicht als Determinante für die Anmeldung eines Benutzers verwendet wird. Dies ist ganz klar PAS den Fall. Versuchen Sie es selbst. Ich kann nicht herausfinden, wo das im Code passiert. Weiß das jemand? Soweit ich sehen kann, passiert es weder in django-registration noch in django.contrib.auth.
- Um die Fehlermeldung anzuzeigen, die ich oben beschrieben habe, was wäre der beste Weg für mich, dies zu tun? Bitte bedenken Sie, dass ich django-registration verwende und daher ein Großteil der Installationsarbeiten bereits erledigt ist. ich möchte dies nicht ändern oder alles neu schreiben. wenn möglich, suche ich nach einer.... "elegante" Lösung.
Vielen Dank im Voraus
in Bezug auf Q1,