Nicer display of currently logged-in user
authorDavid Kerkeslager <kerkeslager@gmail.com>
Fri, 4 Mar 2022 18:46:41 +0000 (13:46 -0500)
committerDavid Kerkeslager <kerkeslager@gmail.com>
Fri, 4 Mar 2022 18:46:41 +0000 (13:46 -0500)
src/core/templates/core/base.html
src/user_profile/urls.py
src/user_profile/views.py

index b1e0ece..f304cfd 100644 (file)
       {% else %}
         <span><a href='/t/'>Training</a></span>
       {% endif %}
+
+      {% if request.user.is_authenticated %}
+      <span>Logged in as <a href='{% url "user:self-profile-detail" %}'>{{ request.user.username }}</a>.</span>
+      {% endif %}
     </nav>
 
     {% block content %}{% endblock %}
index bc2c6d8..d1dad9b 100644 (file)
@@ -2,10 +2,17 @@ from django.urls import path
 
 from . import views
 
+app_name = 'user'
+
 urlpatterns = (
+    path(
+        '',
+        views.user_profile_detail,
+        name='self-profile-detail',
+    ),
     path(
         '<str:username>',
         views.user_profile_detail,
-        name='user-profile-detail',
+        name='profile-detail',
     ),
 )
index 41498b6..39557a9 100644 (file)
@@ -1,4 +1,5 @@
 from django.contrib.auth.models import User
+from django.http import Http404
 from django.shortcuts import get_object_or_404
 from django.views.generic.detail import DetailView
 
@@ -6,6 +7,14 @@ class UserProfileDetailView(DetailView):
     model = User
 
     def get_object(self):
-        return get_object_or_404(User, username=self.kwargs['username'])
+        username = self.kwargs.get('username')
+
+        if username:
+            return get_object_or_404(User, username=username)
+
+        if self.request.user.is_authenticated:
+            return self.request.user
+
+        raise Http404()
 
 user_profile_detail = UserProfileDetailView.as_view()