path('posts/(?P<post_id>[0-9]+)/$'

154 views
Skip to first unread message

ehrenf...@gmail.com

unread,
Dec 2, 2018, 12:42:51 PM12/2/18
to Django users

I get the error:


     
Using the URLconf defined in blog.urls,
     
Django tried these URL patterns, in this order:
     

  1. admin/

  2. Posts/(?P<post_id>[0-9]+)/$
  3. ^media/(?P<path>.*)$
     
    The current path, posts/2, didn't match any of these.

Here is my .py's

from django.contrib import admin
from django.urls import path
from posts import views
from django.conf.urls.static import static
from django.conf import settings

urlpatterns
= [
                  path
('admin/', admin.site.urls),
                  path
('', views.home),
                  path
('posts/(?P<post_id>[0-9]+)/$', views.post_details),

             
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

views.py

from django.shortcuts import render
from posts.models import Post

# Create your views here.
def home(request):
    posts
= Post.objects.order_by('pub_date')

   
return render(request, 'posts/home.html', {'posts': posts})

def post_details(request, post_id):
   
return render(request, "posts/posts_detail.html", {'post_id': post_id})

Any ideas why it doesn't work. I am a newbie with django

Jani Tiainen

unread,
Dec 2, 2018, 1:00:17 PM12/2/18
to django...@googlegroups.com
Hi.

Path is a new url format which uses format of <parser:variable> for exanple like <int:path> . If you want to use regular expressions use re_path instead. 

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/d28eac04-2edc-405e-9942-e883b1e7bff8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

ehrenf...@gmail.com

unread,
Dec 2, 2018, 7:51:01 PM12/2/18
to Django users
I am new to django so I am not sure I understand what you are saying. Can you give me a rewrite of the correct syntax of the line that is not correct?

Thank you

Lachlan Musicman

unread,
Dec 2, 2018, 9:04:04 PM12/2/18
to django...@googlegroups.com
On Mon, 3 Dec 2018 at 11:51, <ehrenf...@gmail.com> wrote:

On Sunday, December 2, 2018 at 10:00:17 AM UTC-8, Jani Tiainen wrote:
Hi.

Path is a new url format which uses format of <parser:variable> for exanple like <int:path> . If you want to use regular expressions use re_path instead. 

<ehrenf...@gmail.com> kirjoitti su 2. jouluk. 2018 klo 19.42:
Here is my .py's

from django.contrib import admin
from django.urls import path
from posts import views
from django.conf.urls.static import static
from django.conf import settings

urlpatterns
= [
                  path
('admin/', admin.site.urls),
                  path
('', views.home),
                  path
('posts/(?P<post_id>[0-9]+)/$', views.post_details),

             
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)



So, to your urls.py you need to add:

from django.urls import path, re_path
And your url patterns will need to look like
re_path('posts/(?P<post_id>[0-9]+)/$', views.post_details),

I've not looked for a while, but it might even need to be 

re_path(r'posts/(?P<post_id>[0-9]+)/$', views.post_details),

Cheers
L.



 ------
"The fact that you're still saying something like 'feminism gone mad' suggests that feminism hasn't gone mad ENOUGH yet."

Helen Zaltzman / @HelenZaltzman
https://twitter.com/HelenZaltzman/status/1065384934846545920

Jani Tiainen

unread,
Dec 3, 2018, 5:58:43 AM12/3/18
to django...@googlegroups.com
path('posts/<int:post_id>/$') should work as well.

ehrenf...@gmail.com

unread,
Dec 3, 2018, 6:54:26 AM12/3/18
to Django users
They both worked.

Thank you!!!!!
Reply all
Reply to author
Forward
0 new messages