python – 通过约束选择将参数传递给Django中的视图

我正在寻找将两个参数中的任何一个传递给URL中的视图的最佳方法,而不允许任何其他参数.

例如,使用以下URL:

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

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

如果可以将URL传递给视图,那么pendingFriends知道从哪个URL调用它,那就行了.但是,我看不到这样做的方法.

相反,我可以将URL中的参数(请求或提议)提供给单个Django视图,

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

该论点将告诉pendingFriends做什么.但是,这样就可以将其他参数传递给URL(除了请求和优惠之外).

理想情况下,我希望URL调度程序在无效参数传递给视图之前停止发生这种情况(通过404).所以我的问题是(a)这是最好的方法,(b)有没有办法约束传递给URL中的视图的参数到请求或提供?

谢谢

最佳答案 请记住,您具有匹配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'),
点赞