Was bedeutet Anfrage.Benutzer beziehen sich auf in Django?
Habe ich Verwirrung in Bezug auf was bedeutet Anfrage.Benutzer bezieht sich auf die in Django?
Meint Sie Benutzername Feld in der auth_user Tisch oder kommt der Begriff User model-Instanz?
Hatte ich diese Zweifel, denn ich war nicht in der Lage, Zugriff auf E-Mail-Feld in die Vorlage mit {{request.user.username}}
oder {{user.username}}
.
Anstatt also, ich habe folgende in Aussicht Datei:
userr = User.objects.get(username=request.user)
Und übergeben userr
auf die Vorlage zugegriffen und E-Mail-Feld als {{ userr.email }}
.
Obwohl seine arbeiten, aber ich wollte etwas Klarheit darüber.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihre Vorlage empfangen AnonymousUser, der Verweis auf
{{request.user.email}}
nicht gefunden werden. Zuvor müssen Sie Fragen, ob{{request.user.is_authenticated }}
.Müssen Sie prüfen, ob es enthalten ist
django.core.context_processors.auth
Kontext-Prozessor inTEMPLATE_CONTEXT_PROCESSORS
im Abschnitt Einstellungen. Wenn Sie mit Django 1.4 oder spätestens dann Kontext-Prozessor istdjango.contrib.auth.context_processors.auth
. Diese Kontext-Prozessor ist verantwortlich für Benutzer-Objekt bei jedem request.request.user
im User-model-Objekt.Können Sie nicht auf request-Objekt in Vorlage, wenn Sie nicht bestehen
request
ausdrücklich.Wenn Sie wollen, Zugriff auf die user-Objekt aus Vorlage, Sie sollte es passieren-Vorlage oder verwenden Sie RequestContext.
request.user
ist aktuell angemeldeten Benutzers, wenn der Benutzer angemeldet ist. Sonst ist es AnonymousUser.user.is_authenticated()
. AnonymousUser hat keine E-Mail-Feld.username
Attribut. Sollte es Fehler auslösen, wenn der Zugriff durchrequest.username
. Hast du zugewiesenusername
zurequest
?Es hängt davon ab, was Sie eingestellt .
So, es ist besser,
Tatsächlich, Sie brauchen nicht zu definieren, solche Variablen, wenn Sie append
'django.core.context_processors.request'
in dieTEMPLATE_CONTEXT_PROCESSORS
Liste insettings.py
Dann können Sie den Zugriff auf die variable {{ request.Benutzer.username }} in Vorlagen wenn Sie mit
render
imviews.py
def __unicode__
Anfrage.Benutzer bezieht sich auf den aktuellen Benutzer-model-Instanz.
Anfrage.Benutzer.FIELDNAME ermöglicht Ihnen den Zugriff auf alle Felder der user-Modell
render(request, 'templatename', {'a' : 'b'....})
Der 3. parameter ist Kontext-Wörterbuch