python - 在 Django 模板中路由时,如何处理标题中的正斜杠 '/'?

标签 python django

我的 urls.py 和 template.html 如下所示:

urls.py

path('item/<str:title>/', views.ItemDetail.as_view(), name="item_detail'),

模板.html

<h3>Title: <a href="{% url 'item_detail' object.title %}">object.title</a></h3> 

现在,我不阻止用户创建带有正斜杠的对象。这可能是一个单独的问题

用户创建带有正斜杠的项目后,假设“预先完成 1/2 工作”,我如何使用该标题路由到该项目?现在我不知道如何处理正斜杠 / 并且收到错误:

Reverse for 'item_detail' with arguments '('Do 1/2 the work up front',)' not found. 1 pattern(s) tried: ['item\/(?P[^/]+)$']

我调查了striptags但这不是我需要的。

最佳答案

在 django str 中接受除 / 符号之外的所有内容。所以根据 Django 文档,

path - 匹配任何非空字符串,包括路径分隔符“/”。这允许您匹配完整的 URL 路径,而不是像 str 那样仅匹配 URL 路径的一部分。

但是我建议您添加一个 slug 字段,它将您的网址转换为类似 this-is-your-url

关于python - 在 Django 模板中路由时,如何处理标题中的正斜杠 '/'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53419897/

相关文章:

python - Django 应用程序尚未加载错误

python - 如何使用 python 中的 lambda 函数在通过 S3 连接的 AWS athena 中查询

python - theano ~ 使用索引矩阵和嵌入矩阵来生成 3D 张量?

python - py2app 构建的应用程序在其他机器上显示 `ERROR: pygame.macosx import FAILED`

python - Telegram Bot "chat not found"

python - ListView 缺少 QuerySet。定义 ListView.model、ListView.queryset 或覆盖 ListView.get_queryset()

python - TypeError at/login login() 缺少 1 个必需的位置参数 : 'User'

django - 使用 django rest 框架在元数据中添加字段

django - Css 不适用于 FastCGI 和 Lighttpd

python - 触发 PySide QTabWidget 中选项卡的关闭事件