如何在django url中只传递预定义的值?

时间:2012-09-18 16:02:30

标签: regex django django-urls

我的网址就像 -

urlpatterns = patterns('network.network_api.views',

(r'^network/license/(?P<flag>\w{4,12})/?$',             'Check_License'),

)

这里我想只允许标志(ACTIVATE或DEACTIVATE),请帮助我,我应该在我的网址中做出哪些更改。

2 个答案:

答案 0 :(得分:2)

尽管在url中使用硬编码标志似乎是一个很好的解决方案,但我认为最好将这样的逻辑保留在视图中,如果两个支持的标志中都没有标志,则引发错误。在我看来,如果您需要在将来添加标记,则更灵活。

以下是您还需要网址中的标记。它确保用于添加条件的组不会被正则表达式拾取:

url(r'^network/license/(?P<flag>(?:ACTIVATE)|(?:DEACTIVATE))/$', 'Check_License'),

答案 1 :(得分:1)

这应该有用。

url(r'^network/license/(?P<flag>(ACTIVATE|DEACTIVATE){1})/$', 'Check_License'),