如何将 Django URL 参数限制为选项列表?
How to limit Django URL parameter to a list of options?
我的项目中有以下 URL:
from django.urls import include, path
urlpatterns = [
path('case/<str:type>/<int:id>/', views.case, name='case'),
...
]
它工作正常,但是 type
URL 参数在我的数据库中实际上只能有 2 个值:"internal"
和 "external"
。我如何在我的 URL 路径本身中限制它?将使我不必在视图中验证它。感谢您的帮助。
试试这个:
from django.urls import include, re_path
urlpatterns = [
re_path(r'case/(?P<type>\binternal\b|\bexternal\b)/<int:id>/', views.case, name='case'),
...
]
让我知道它是否有效
您可以创建一个位于视图上方的装饰器,用于验证 url 字符串中的类型值。
如果类型不在允许列表中,IE 会引发 404。
我的项目中有以下 URL:
from django.urls import include, path
urlpatterns = [
path('case/<str:type>/<int:id>/', views.case, name='case'),
...
]
它工作正常,但是 type
URL 参数在我的数据库中实际上只能有 2 个值:"internal"
和 "external"
。我如何在我的 URL 路径本身中限制它?将使我不必在视图中验证它。感谢您的帮助。
试试这个:
from django.urls import include, re_path
urlpatterns = [
re_path(r'case/(?P<type>\binternal\b|\bexternal\b)/<int:id>/', views.case, name='case'),
...
]
让我知道它是否有效
您可以创建一个位于视图上方的装饰器,用于验证 url 字符串中的类型值。
如果类型不在允许列表中,IE 会引发 404。