Sie können Benutzernamen in url
regexp args geben und fordern Benutzer von request
Klasse erhalten:
Ansicht:
def user_page(request, username):
try:
user = User.objects.get(username=username)
except User.DoesNotExists:
raise Http404
# or use shortcut get_object_or_404(User, username=username)
if request.user.username != user.username:
raise Http404
return render(request, 'templates/user_template', {'user':user})
Urls:
url(r'^(?<username>\w+)/page/$', views.user_page, name='user_page')
Hinweis: username
Feld nicht gültig Wahl, wenn es nicht eindeutig, es wird ein Fehler auftreten, wenn Sie mehr als einen Benutzer von User.objects.get()
erhalten. Bessere Verwendung pk
Feld für die Suche auf der Benutzerseite.
Es gibt jedoch eine einfachere Möglichkeit, eine Benutzerseite für den Anforderungsbenutzer zu erstellen. Nur eine URL ohne Keyword-Argumente, die Antwortdaten für authentifizierte Benutzer:
Ansicht:
def user_page(request):
user = None
if request.user.is_authenticated():
user = User.objects.get(pk=request.user.pk)
return render(request, 'templates/user_template', {'user': user})
Urls:
url(r'^page/$', views.user_page, name='user_page')
es nun Daten zurückgeben basierend auf Anfrage Benutzer oder None
, wenn der Benutzer nicht ist authentifiziert
https://docs.djangoproject.com/ja/1.9/topics/http/urls/ Sie können die URL-Parameter in Ihrer Ansicht erhalten. Sie können es von dort nehmen. – nightgaunt