I’m getting an this error when placing a link on the navbar that directs logged in users to their profile page and it does not work.
I tried all the solutions here and non worked.
Any thoughts?
<a href="{% url 'show_user_profile_view_url' post.author.profile.pk %}">profile page</a>
class ShowProfilePageView(generic.DetailView):
model = Profile
template_name = 'registration/user_profile.html'
def get_context_data(self, *args,**kwargs):
users = Profile.objects.all()
context = super(ShowProfilePageView, self).get_context_data(*args,**kwargs)
page_user = get_object_or_404(Profile,id=self.kwargs['pk'])
context['users']=users
context['page_user']=page_user
return context
What does your urls.py entry for this look like?
There are a couple things here - first is the formatting. Is your get_context_data supposed to be part of your ShowProfilePageView class? It’s showing here like it’s not.
Also, in your template, you reference post.author.profile.pk. Where is that defined in your view?
Yes it does.
class ShowProfilePageView(generic.DetailView):
model = Profile
template_name = 'registration/user_profile.html'
def get_context_data(self, *args,**kwargs):
users = Profile.objects.all()
context = super(ShowProfilePageView, self).get_context_data(*args,**kwargs)
page_user = get_object_or_404(Profile,id=self.kwargs['pk'])
context['users']=users
context['page_user']=page_user
return context
I’m trying to pass the user profile details through the users = Profile.objects.all() and context[‘users’]=users
Is this the right way to do it?
thank you
Let’s look at this from a different direction.
The parameter you’re specifying in this url tag is:
post.author.profile.pk
What does this expression (post.author.profile.pk) mean? (What is it referring to?)
If you’re not sure, start with reviewing the documentation at Templates | Django documentation | Django.