开发者

What is the best way to format Django urls for two parameters, either of which are optional?

开发者 https://www.devze.com 2022-12-26 04:56 出处:网络
I\'m designing a gallery application for viewing vehicle pictures and there are two parameters: Manuf开发者_开发问答acturer

I'm designing a gallery application for viewing vehicle pictures and there are two parameters:

  1. Manuf开发者_开发问答acturer
  2. Vehicle type

Right now you can view either, but not both. Urls go like so:

  1. /manufacturer/#
  2. /type/#

Where # is an ID number. How/can I format my URLs so it can accept both? My current solution is to do: /both/#/# but this requires some retooling since the application doesn't know when you want to filter by both. Any insight would be appreciated.


If you're in a situation where both are optional, perhaps your best bet is to handle it through GET parameters.


Probably that scheme will work for you:

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),
    ...

And depending on user’s way through the site, urls will be /manufacturer/123/, /manufacturer/123/456/ or /type/456/, /type/456/123/ (where 123 is a manufacturer id, and 456 is vehicle type id.)

0

精彩评论

暂无评论...
验证码 换一张
取 消