我目前正在尝试在RESTful Web服务上运行一些测试,并使用django测试客户端使用Client.get测试以下get请求:
'/api/browse=ia?filter=General'
这些是我的网址:
(r'^api/browse=([\w\s]+)$', 'webservice_browse_nofilter')
(r'^api/browse=([\w\s]+)\?filter=(\w+)$', 'webservice_browse')
问题是调用了错误的函数。在这种情况下,我想调用第二个函数,而是调用第一个函数。问题是,?应该作为参数的分隔符,但由第一个模式匹配,第一个模式仍然将正确的参数'ia'发送给函数而不是整个字符串。我觉得我错过了什么,但我不知道是什么。目的是使用参数'ia'和'General'调用第二个函数。
答案 0 :(得分:1)
这些模式在技术上是相同的URL,只是使用不同的查询字符串。
您是否考虑将它们合并到一个视图中,并测试request.GET.get('filter')是否返回任何内容?
我不认为反转它们会做任何事情 - 我相信Django在处理URL时会忽略查询字符串
答案 1 :(得分:1)
请参阅Django and query string parameters
正如Brett Thomas所说,您将在request.GET
答案 2 :(得分:1)
澄清其他回答者所说的话,一切都在之后? 不是网址的一部分,并且在正则表达式中不会匹配。