#python #django #django-templates
#python #django #django-шаблоны
Вопрос:
Я пытаюсь вернуть форматированный URL-адрес, который будет выглядеть как этот «edit-book / 4 /improved-led-lamp», используя тег {% url %}
Я пытался {% url 'dashboard:editbook' 4 slug %}
вот корень url.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('', include('home.urls')),
path('dashboard/', include('dashboard.urls')),
path('admin/', admin.site.urls),
]
вот URL-адреса моего приложения dashboard, py
from django.urls import path
from . import views
app_name = 'dashboard'
urlpatterns = [
path('edit-book/<int:id>/<slug:title>', views.BookView.as_view(), name='editbook'),
]
если я посещаю «edit-book / 4 /improved-led-lamp» в своем браузере, он разрешается, но когда я пытаюсь воспроизвести это в представлении с использованием тега {% url %}, он выдает ошибку noReverseMatch
это скриншот ошибки
Комментарии:
1. Пожалуйста, покажите ошибку полностью.
2. @DanielRoseman, я только что загрузил скриншот ошибки, плюс я отредактировал код, чтобы предоставить более подробную информацию
Ответ №1:
Ваш синтаксис выглядит правильным, и если slug
переменная состоит из slug ( [-a-zA-Z0-9_]
), она должна работать.
Посмотрите на содержимое slug
. На скриншоте ошибки показано, что это пустая строка.
Комментарии:
1. на скриншоте показано, что
slug
переменная является пустой строкой. Там нужен настоящий slug.