我设计用于查看车辆的照片图库应用,并有两个参数:什么是最好的方式来格式化Django的两个参数,其中任何一个是可选的?
- 厂商
- 车型
现在你可以查看下去,但不能同时使用。网址都像这样:
- /制造/#
其中#是一个ID号
我设计用于查看车辆的照片图库应用,并有两个参数:什么是最好的方式来格式化Django的两个参数,其中任何一个是可选的?
现在你可以查看下去,但不能同时使用。网址都像这样:
其中#是一个ID号
如果你处于两种情况都是可选的情况下,或许你最好的选择是通过GET参数来处理它。
可能是方案会为你工作:
views.py:
def filtered_view (request, manufacturer_id=None, type_id=None):
...
urls.py:
...
url(r'^manufacturer/(?P<manufacturer_id>[0-9]+)/((?P<type_id>[0-9])/)?$', filtered_view),
url(r'^type/(?P<type_id>[0-9]+)/((?P<manufacturer_id>[0-9])/)?$', filtered_view),
...
,并根据用户的方式,通过该网站,网址是/manufacturer/123/
,/manufacturer/123/456/
或/type/456/
,/type/456/123/
(其中123
是制造商ID,456
是车型号。)
哇,那就是它。谢谢! – Parker 2010-04-05 03:27:07
你的意思是你的网址看起来像'http://example.com/view?manufacturer = foo'和'http://example.com/view?type = bar&manufacturer = baz'?我认为django社区认为这样的GET参数是丑陋的,并且是最好的避免。 – blokeley 2010-04-05 09:09:19
是的,他们应尽可能避免。但是,GET参数的存在是出于某种原因,并且在某些情况下,至少在我看来,如果逻辑上合理的话,可以使用它们。 – digitaldreamer 2010-04-05 12:14:27