¿Cómo puedo mostrar un perfil de usuario usando Django?

Soy nuevo en django y actualmente estoy intentando crear un sitio web que permita a los usuarios iniciar sesión y ver los perfiles de otros usuarios. Hasta ahora he logrado que los usuarios inicien sesión, pero no puedo averiguar cómo ver los perfiles de otras personas.

Cada perfil utiliza el nombre de usuario de los usuarios para crear una url para su perfil. Actualmente, si inicio sesión como un usuario y cambio la URL a la URL del perfil de otro usuario, todavía se muestra el perfil de los usuarios actuales. Quiero algo similar a pinterest donde cualquier persona que haya iniciado sesión o no pueda ver los perfiles de las personas.

¡Cualquier ayuda sería apreciada!

Ver

from django.http import HttpResponse from django.shortcuts import render from howdidu.forms import UserProfileForm from howdidu.models import UserProfile from django.contrib.auth.decorators import login_required from django.shortcuts import get_object_or_404 from django.contrib.auth.models import User def index(request): context_dict = {'boldmessage': "I am bold font from the context"} return render(request, 'howdidu/index.html', context_dict) #user profile form @login_required def register_profile(request): profile = UserProfile.objects.get(user=request.user) if request.method == 'POST': form = UserProfileForm(request.POST, request.FILES, instance=profile) if form.is_valid(): form.save() return index(request) else: print form.errors else: form = UserProfileForm() return render(request, 'howdidu/register_profile.html', {'form': form}) #profile page using user name as url @login_required def profile_page(request, username): user = get_object_or_404(User, username=username) return render(request, 'howdidu/profile.html', {'profile_user': user}) 

URL del proyecto

 from django.conf.urls import patterns, include, url from django.contrib import admin from django.conf import settings from registration.backends.simple.views import RegistrationView class MyRegistrationView(RegistrationView): #redirects to home page after registration def get_success_url(self,request, user): return '/register_profile' urlpatterns = patterns('', # Examples: # url(r'^$', 'howdidu_project.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), url(r'', include('howdidu.urls')), url(r'^accounts/register/$', MyRegistrationView.as_view(), name='registration_register'), #redirects to home page after registration (r'^accounts/', include('registration.backends.simple.urls')), url(r'^(?P\w+)/', include('howdidu.urls')), #do i need this? ) # media if settings.DEBUG: urlpatterns += patterns( 'django.views.static', (r'^media/(?P.*)', 'serve', {'document_root': settings.MEDIA_ROOT}), ) 

url de la aplicación

 from django.conf.urls import patterns, url from howdidu import views urlpatterns = patterns('', url(r'^$', views.index, name='index'), url(r'^register_profile/$', views.register_profile, name='register_profile'), url(r'^(?P\w+)/$', views.profile_page, name='user_profile'), ) 

modelo

 {% extends 'howdidu/base.html' %} {% load staticfiles %} {% block title %}{{ user.username }}{% endblock %} {% block body_block %} {% if user.is_authenticated %} 

{{ user.username }} welcome to your profile page

{{ user.userprofile.first_name }}

{{ user.userprofile.second_name }}

{{ user.userprofile.user_country }}

{% endif %} {% endblock %}

  1. Registre las URL de su aplicación en la carpeta de configuración project_name/urls.py : Ej .:
 from django.conf.urls import include, url from django.contrib import admin from django.conf import settings urlpatterns = [ url(r'^user/', include('.urls')), url(r'^admin/', include(admin.site.urls)), ] 
  1. Agregue una nueva ruta en su /urls.py . P.ej :

desde . importar vistas

 urlpatterns = [ url(r'profile/(?P[a-zA-Z0-9]+)$', views.get_user_profile), ] 
  1. Agregue una vista en /views.py que tome el username (nombre de usuario del usuario) para recuperar su información y enviarla a una plantilla. Por ejemplo:
 from django.shortcuts import render def get_user_profile(request, username): user = User.objects.get(username=username) return render(request, '/user_profile.html', {"user":user}) 
  1. Cree un archivo de plantilla en /templates//user_profile.html para mostrar user objeto de user :
 {{ user.username }} {{ user.email }} {{ user.first_name }} {{ user.last_name }} 

Reemplace por el nombre de su aplicación y debería ser bueno.