如何设置只接受 3 个特定单词的 Django URL 正则表达式?

Posted

技术标签:

【中文标题】如何设置只接受 3 个特定单词的 Django URL 正则表达式?【英文标题】:How to set up a Django URL regex that accepts only 3 specific words? 【发布时间】:2016-01-14 06:22:42 【问题描述】:

我的 urls.py 现在设置如下:

urlpatterns = [
url(r'^(?P<content_type_name>[a-zA-z-_]+)$', views.content_type, name = 'content_type'),
]

这使得这个 url 将接受任何由 - 或 _ 或两者分隔的单词或单词字符串。但是,我想要一个正则表达式,它只接受 content_type_name 参数的三个单词之一 - 'comics'、'articles'、'videos'。

如何设置?

【问题讨论】:

【参考方案1】:

以下应该做:

urlpatterns = [
    url(r'^(?P<content_type_name>comics|articles|videos)$', views.content_type, name='content_type'),
]

【讨论】:

对于 django 2+ 使用 re_path 而不是 url

以上是关于如何设置只接受 3 个特定单词的 Django URL 正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章

如何修改现有提交中的特定单词? [复制]

如何让用户仅在管理员接受django的注册后才能进行注册?

如何更改 Photon 中特定播放器的设置?

通过设置命令问题创建文件夹名称

使用“类”数据类型时,如何指定类型以便只接受特定类的子类?

使用 Django 更改整个 html 文档中特定字符串的颜色