将参数从限制选项传递给Django中的视图

问题描述:

我正在寻找将URL中的两个参数中的任意一个传递给视图的最佳方法,而不允许任何其他参数。将参数从限制选项传递给Django中的视图

例如,与以下网址:

(r'^friends/requests', 'app.views.pendingFriends'), 

(r'^friends/offers', 'app.views.pendingFriends'), 

如果有可能的URL传递给意见,让pendingFriends知道哪个URL它是从调用,会工作。但是,我看不到一种方法来做到这一点。

取而代之的是,我可以在URL中提供的参数(requestsoffers),以单一的Django视图,

(r'^friends/(?P<type>\w+', 'app.views.pendingFriends'), 

的参数会告诉pendingFriends做什么。然而,这留下了其他参数传递给URL的可能性(除了requestsoffers。)

理想情况下,我希望URL调度程序在无效参数传递给之前停止这种情况(通过404)观点。所以我的问题是(a)这是最好的方法,(b)有没有办法将传递给URL中视图的参数限制为requestsoffers

谢谢

请记住,您具有正则表达式的全部功能来匹配URL。您只需编写一个正则表达式,你只想要什么接受:

(r'^friends/(?P<type>requests|offers)', 'app.views.pendingFriends'), 

如果要列出它的两倍,像这样做:

(r'^friends/(?P<type>requests)', 'app.views.pendingFriends'), 
(r'^friends/(?P<type>offers)', 'app.views.pendingFriends'),