如何格式化URL以在模板中返回类似“ product / 4 / improved-led-lamp”的内容

时间:2019-03-25 15:47:57

标签: python django django-templates

我正在尝试使用{%url%}标签返回一个格式类似于“ edit-book / 4 / improved-led-lamp”的格式的网址

我尝试过{% 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),
]

这是我的信息中心应用的网址,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错误

这是错误 screenshot of error

1 个答案:

答案 0 :(得分:2)

您的语法看起来正确,并且如果slug变量由子句([-a-zA-Z0-9_]+)组成,则它应该可以工作。

查看slug的内容。错误屏幕截图显示它是一个空字符串。