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

标签 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 %} 标记在 View 中重现此问题时,它会抛出 noReverseMatch 错误

这是错误 screenshot of error

最佳答案

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

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

关于python - 如何格式化 url 以在模板中返回类似 "product/4/improved-led-lamp"的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55341601/

相关文章:

python - 如何实现分类系统

python - 具有多个参数的自定义模板标签

python - Django 注释总和

django - 如何在 Django 中制作主从模型/屏幕?

python - 如何在Python中按总位数(包括整数部分)而不是固定位数进行舍入?

python - --help 选项中 Click.option 的类型和默认输入值

django - 为什么用户模型具有字符串类型?

python - 为什么我的来自 django 电子邮件的 html 链接不可点击?

python - 在(和为)多个操作系统上创建 Python 发行版(eggs)的最佳实践是什么

python - Fetchall 在 Python 中只返回一列?