Страница Django не найдена событие ошибки, если путь правильный - PullRequest
0 голосов
/ 03 сентября 2018

Я новичок в Django framework в версии 2.1, у меня проблемы с использованием дополнительных параметров в urls.py

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

urlpatterns = [
    path('myapp/', include('myapp.urls')),
    path('myblog/', include('myblog.urls')),
    path('admin/', admin.site.urls),
]

Имя приложения: myblog

urls.py

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

from . import views
app_name = 'myblog' #FOR NAMESPACE ISSUE THIS IS REQUIRED
urlpatterns = [
    re_path(r'^test_view/<mode>/(?:blog-(?P<blog_id>\d+)/)?$', views.test_view)
]

myblog view.py

def test_view(request, mode, blog_id):
    return HttpResponse('ss')

шаблон моего блога

<button type="button" class="btn-xs btn-primary" onclick="location.href='{% url 'myblog:test_view' 'create' 1 %}'">Create New Blog</button>

ERROR

IN TEMPLATE : 
NoReverseMatch at /myblog/
Reverse for 'test_view' not found. 'test_view' is not a valid view function or pattern name.

ДОБАВИТЬ ПРИ ДОСТУПАЕ URL ПРЯМО http://127.0.0.1:8000/myblog/test_view/create/1/ Я ПОЛУЧАЮ PAGE NOT FOUND

ОБРАТИТЕ ВНИМАНИЕ, ЧТО В СООТВЕТСТВИИ С ДОКУМЕНТАЦИЕЙ, ПОЛУЧЕННОЙ В ДОКУМЕНТАЦИЯ ДЖАНГО Я ИЗМЕНИЛСЯ ЖЕ ИЗМЕНЕНИЯ, НО ПОЭТОМУ Я ПОЛУЧИЛ ЭТУ ОШИБКУ

СПАСИБО ЗА ПРЕДЕЛА.

1 Ответ

0 голосов
/ 03 сентября 2018

Вы можете указать имя URL, используя name аргумент:

re_path(r'^test_view/(?P<mode>\w+)/(?:blog-(?P<blog_id>\d+)/)?$', views.test_view, name='test_view')
...