【问题标题】:How to escape '/' in django urls如何在 django url 中转义“/”
【发布时间】:2022-01-10 13:35:05
【问题描述】:

我正在开发一个生成动态网址的项目 例如,如果您键入 mysite.com/ 该网站应该生成一个带有 mysite.com/yourtexthere 的 url(其中 yourtext here 是一个模型的 slug)和我能够做到这一点,但是当我输入类似 mysite.com/yourtexthere/moretext 之类的内容时出现问题,Django 与我现有的任何 URL 模式都不匹配并给我 404。

我想问有没有一种方法可以将“/”视为另一个字符并生成唯一的 url mymysite.com/yourtexthere/moretext where yourtexthere/moretext 现在是蛞蝓。

views.py

def textview(request, slug):
    obj, created= Text.objects.get_or_create(slug=slug, defaults={'text':'', 'password':'123'})
    return render(request, 'text/textpage.html', {'obj' : obj, 'created' : created})

urls.py

# Only patterns
urlpatterns = [
    path('', home, name='home'),
    path('<slug:slug>/', textview, name='textview'),
]

【问题讨论】:

  • 如果您需要更多信息,请发表评论

标签: django django-views django-urls


【解决方案1】:

来自 Django models docs:

slug 是某事物的短标签,仅包含字母、数字、下划线或连字符。

所以 404 实际上是正确的,也许使用另一个字段。

【讨论】:

    猜你喜欢
    • 2013-09-07
    • 2022-01-21
    • 1970-01-01
    • 2016-09-25
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2020-07-07
    相关资源
    最近更新 更多