Как правильно написать регулярное выражение в re_path django 3 - PullRequest
1 голос
/ 10 июля 2020

Проблема с моим кодом заключается в том, что я продолжаю получать ошибку «страница не найдена (404), путь 'post / ...' не совпадает», когда я пытаюсь щелкнуть гиперссылку на моей странице сообщений. Сделал 3 поста. Может быть, это регулярное выражение? Потому что в настоящее время я плохо разбираюсь в регулярных выражениях. Как я могу сопоставить views.py с правильным путем в urlpatterns?

Мой urls.py:

from django.contrib import admin
from django.urls import path, re_path

from blog import views as blog_views

urlpatterns = [
    path('post/', blog_views.post),
    
    re_path(r'^post(.*)/$', blog_views.post),

    path('about/'. blog_views.about),

    path('', blog_views.index),

    path('admin/', admin.site.urls)
]

Мой views.py:

from django.shortcuts import render,get_object_or_404
from django.http import HttpResponse

from .models import Post

def index(request):
    posts = Post.objects.all()
    return render(request,'index.html', {'posts': posts})

def post(request, slug):
    print(slug)
    return render ('post.html',{'post': get_object_or_404(Post, slug=slug)})

def about(request):
    return render(request, 'about.html', {})

1 Ответ

1 голос
/ 10 июля 2020

Вы можете использовать что-то вроде:

re_path(r'post/(?P<slug>[\w-]+)/$', blog_views.posts),

Вам действительно нужно использовать re_path здесь? Проще было бы использовать path:

path('post/<slug:slug>/', blog_views.post),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...