【问题标题】:Restricting the url parameter values in Django URL限制 Django URL 中的 url 参数值
【发布时间】:2021-03-12 00:28:33
【问题描述】:

我有一个 Django Web 应用程序,它有两种类型的用户,比如客户和企业。我需要获取尝试登录的用户类型。所以我定义了一个 url 模式如下:

 path('login/<type>/', LoginView.as_view(), name='login'),

但是如何限制 url 模式只匹配以下模式

  1. 登录/客户/
  2. 登录/业务/

【问题讨论】:

    标签: python django regex django-urls django-3.1


    【解决方案1】:

    在网址中使用正则表达式。有点像...

    
    url(r'^login/(?P<type>customers|business)', LoginView.as_view(), name='login')
    

    【讨论】:

    • 如果我继续第一个选项..如何获取参数是客户还是企业?以及如何做第二种方法,这才是我真正需要的
    • 您好,感谢您接受我的回答。我删除了第一个,因为它可能不适用于您的情况。当您在 url 中有 opitonal_varialbe 时,这种类型的解决方案效果很好。我留下了正则表达式。只是想更新一下。
    【解决方案2】:

    您可以在视图中查看。

    if type not in ['customers', 'business']:
        messages.error(request, "Invalid Route')
        return HttpResponseRedirect('login')
    

    PS:不要使用type。它已经在 Python 中定义了。

    【讨论】:

    • 我实际上需要知道我是否可以使用 url 模式来实现它
    • 哦,好的。 @ha-neul 已经完美地回答了。
    猜你喜欢
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2012-12-05
    • 2018-01-18
    • 1970-01-01
    相关资源
    最近更新 更多