为两个参数格式化Django URL的最佳方法是什么,这两个参数都是可选的?
我正在设计一个用于查看车辆图片的图库应用程序,有两个参数:为两个参数格式化Django URL的最佳方法是什么,这两个参数都是可选的?,django,Django,我正在设计一个用于查看车辆图片的图库应用程序,有两个参数: 制造商 车型 现在您可以查看其中一个,但不能同时查看两个。URL如下所示: /制造商/# /类型/# 其中#是一个ID号。我如何/可以格式化我的URL,使其可以同时接受这两种格式?我目前的解决方案是:同时使用/both/#/#,但这需要一些重新工具,因为应用程序不知道何时需要同时使用这两种方法进行过滤。如果您有任何见解,我们将不胜感激。如果您所处的环境中两者都是可选的,那么您的最佳选择可能是通过获取参数来处理它。该方案可能适用于您: v
其中#是一个ID号。我如何/可以格式化我的URL,使其可以同时接受这两种格式?我目前的解决方案是:同时使用/both/#/#,但这需要一些重新工具,因为应用程序不知道何时需要同时使用这两种方法进行过滤。如果您有任何见解,我们将不胜感激。如果您所处的环境中两者都是可选的,那么您的最佳选择可能是通过获取参数来处理它。该方案可能适用于您: views.py:
def filtered_view (request, manufacturer_id=None, type_id=None):
...
URL.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),
...
。。。
url(r'^manufacturer/(?P[0-9]+)/(?P[0-9])/)?$,过滤视图),
url(r'^type/(?P[0-9]+)/(?P[0-9])/)?$,已筛选的_视图),
...
根据用户通过网站的方式,URL将是
/manufacturer/123/
,/manufacturer/123/456/
或/type/456/
,/type/456/123/
(其中123
是制造商id,456
是车辆类型id)。哇,确实如此。谢谢你是说你的URL看起来像http://example.com/view?manufacturer=foo
和http://example.com/view?type=bar&manufacturer=baz
?我认为django社区认为这样的GET参数是丑陋的,最好避免。是的,应该尽可能避免。然而,GET参数的存在是有原因的,在某些情况下,至少在我看来,如果逻辑上合理的话,使用它们是可以的。否则我如何在不使用非常严格的URL的情况下实现这一点,因为必须指定这两个参数?遵守使应用程序更难使用的URL标准似乎很愚蠢。