Я новичок в django, и я пытался протестировать методы перенаправления URL-адресов. Я пробовал два варианта, но return render() продолжает выдавать мне эту ошибку отсутствия обратного совпадения.
это мой код urls.py:
app_name = 'blog'
urlpatterns = [
# path('about', views.about, name = 'about'),
path('about.html', views.about, name='about'),
path('home.html', views.home, name='home'),
# path('home', views.home, name ="home")
path('redirect', views.redirect_view),
path('redirection_fct',views.redirection_fct, name='redir_fct'),
#redirection par la fonction as_view
path('redirect1', RedirectView.as_view(url='http://127.0.0.1:8000/blog/redirection_fct')),
path('redirect2', views.redirect_view1),
]
и это мой файл представлений:
def about(request):
return render(request, 'about.html', {})
def home(request):
return render(request, 'home.html', {})
#redirection par HttpResponseRedirect
def redirect_view(request):
return HttpResponseRedirect("redirection_fct")
def redirect_view1(request):
return redirect('redir_fct')
def redirection_fct(request):
return render(request, 'redirection.html', {})
Что-то не так с моим шаблоном URL или это рендеринг?
Это urls.py
в вашем приложении? Как вы включаете его в свой проект urls.py
, если у вас есть пространство имен для него, то вам, вероятно, нужно что-то вроде:
def redirect_view1(request):
return redirect('blog:redir_fct')
Вы можете попробовать запустить из оболочки django:
from django.urls import get_resolver
print(get_resolver().reverse_dict.keys())
Но файл views.py связан с приложением блога, поэтому я подумал, что мне не нужно добавлять пространство имен.
Я использовал функцию включения в свой список urlsproject