【问题标题】:How to limit Django URL parameter to a list of options?如何将 Django URL 参数限制为选项列表?
【发布时间】:2021-10-10 15:11:24
【问题描述】:

我的项目中有以下网址:

from django.urls import include, path

urlpatterns = [
    path('case/<str:type>/<int:id>/', views.case, name='case'),
    ...
]

它工作正常,但 type URL 参数在我的数据库中实际上只能有 2 个值:"internal""external"。如何在我的 URL 路径本身中限制这一点?将使我不必在视图中验证它。感谢您的帮助。

【问题讨论】:

标签: django django-urls


【解决方案1】:

试试这个:

from django.urls import include, re_path

urlpatterns = [
    re_path(r'case/(?P<type>\binternal\b|\bexternal\b)/<int:id>/', views.case, name='case'),
    ...
]

让我知道它是否有效

【讨论】:

    【解决方案2】:

    您可以创建一个装饰器,它位于验证 url 字符串中的类型值的视图之上。

    如果类型不在允许列表中,则 IE 引发 404。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-12
      • 1970-01-01
      • 2011-09-14
      • 2019-03-24
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 2021-04-03
      相关资源
      最近更新 更多