0

My Code is below, if I pass posts data via context, than i get "Reverse for 'user_profil' not found. 'user_profil' is not a valid view function or pattern name." without any "context", i get no error. I have read lots of the comments but no one points out this problem!

If someone can help me , I will be pleasure!

view function:

def user_profil(request,  username):

    posts = postList.objects.all().filter(author__username__icontains=username)

    context = {}
    context['posts'] = posts

    return render(request, 'profile.html', context=context)

Url_patterns:

urlpatterns = [
    path('', postlist_view.home, name='home'),
    path('signup', core_view.signup, name='signup'),
    path('accounts/', include('django.contrib.auth.urls')),
    path('admin/', admin.site.urls),
    path('article/upload/', article_view.upload, name='article-upload'),
    path('article/list/', article_view.list, name='article-list'),
    path('article/<int:pk>/', article_view.delete_article, name='delete_article'),
    path('post/<int:id>/detail/', postlist_view.post_detail, name='post_detail'),
    path('post/<int:id>/update/', postlist_view.post_update, name='post_update'),
    path('post/<int:id>/delete/', postlist_view.post_delete, name='post_delete'),
    path('post/create/', postlist_view.post_create, name='post_create'),
    path('profil/<usernaname>/',
         postlist_view.user_profil, name='page_of_user'),
    path('accounts/logout', core_view.signOut, name='logout'),



home.html

<form method="post">
 <a href="{% url 'page_of_user' username=post.author %}"><h3>{{post.author}}</h3></a></form>

profile.html

 <form method="post"><a href="{% url 'page_of_user' username=post.author %}"><h3>{{post.author}}</h3></a></form>`
   <a href="{% url 'user_profil'%}"><h3>{{post.author}}</h3></a>

Eror

Traceback (most recent call last):
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/alex/Documents/python_programming/vitor/filesystem/postlist/views.py", line 95, in user_profil
    return render(request, 'profile.html', context=context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/shortcuts.py", line 19, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/backends/django.py", line 61, in render
    return self.template.render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 171, in render
    return self._render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/defaulttags.py", line 209, in render
    nodelist.append(node.render_annotated(context))
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/template/defaulttags.py", line 443, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/urls/base.py", line 87, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "/home/alex/Documents/python_programming/vitor/vit/lib/python3.7/site-packages/django/urls/resolvers.py", line 677, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'user_profil' not found. 'user_profil' is not a valid view function or pattern name.
2
  • no ,but i have the app with the name of "core" , at the url page i have imported view.py as core_view? Do you think the is it a problem? Commented May 7, 2020 at 9:56
  • I have updated, with eror message and added up whole url-patterns Commented May 7, 2020 at 10:08

3 Answers 3

3
<a href="{% url 'user_profil'%}"><h3>{{post.author}}</h3></a>

This is your error link, the 'user_profil' named URL is not present in your urls.py When you pass the URL to the template using {% URL %} syntax, the template searched for the URL path with the name specified. In your urls.py, there is no URL with that name.

Sign up to request clarification or add additional context in comments.

Comments

2

This line of code seems to be the problem:

<a href="{% url 'user_profil'%}"><h3>{{post.author}}</h3></a>

From the urlpatterns you provided, there doesn't seem to be a url with the name 'user_profil'. Instead, you might want to use the same href as the other anchor tag as shown bellow:

<a href="{% url 'page_of_user' username=post.author %}"><h3>{{post.author}}</h3></a>

Edit: Thanks to Alasdair for pointing out the typo in this line:

path('profil/<usernaname>/', postlist_view.user_profil, name='page_of_user'),

You need to match the url parameter to the one used in the url tag in the HTML, so you should to change it to:

path('profil/<username>/', postlist_view.user_profil, name='page_of_user'),

2 Comments

For username=post.author to work, you need to fix the typo <usernaname> in the url patterns.
many thanks that was a really small problem but i was looking for two days ! I dont know how I have overlooked such problem!
0

use

<form method="post">
 <a href="{% url 'page_of_user' post.author.username %}"><h3>{{post.author}}</h3></a></form>

instead of

<form method="post">
 <a href="{% url 'page_of_user' username=post.author %}"><h3>{{post.author}}</h3></a></form>

and i hope you are looping the posts to get the post variable.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.