Django多个URL参数,与URL中的顺序无关

时间:2018-05-20 18:05:18

标签: python regex django django-rest-framework

我正在构建一个基于多个URL过滤器查询数据库的API。在此示例中,我想将两个参数传递给我的观看:<tid><teams>。请注意,在生产中将有超过5个不同的参数,所以我试图避免暴力解决方案。

我的预期方法是urls.py

中的以下正则表达式
url(r'(?P<teams>-?teams=[0-9]*)?(?P<tournaments>-?tid=[0-9]*)?',
    stats_views.game_query, name='stats_home')

此RE成功匹配并传递/teams=####-tid=####形式的任何网址,teams=tid=参数都是可选的(这是预期的)。问题是tid=总是必须在URL的teams=部分之后出现。例如,如果我输入网址/tid=###-teams=###<tid>参数将传递给具有预期值的视图,但<teams>参数将作为None传递。

1 个答案:

答案 0 :(得分:2)

要提出一个可能更容易遵循的替代解决方案并避免这种舞蹈,也许可以考虑使用查询字符串。订单不可知和fully supported in DRF