Django格式网址

时间:2012-10-19 09:49:33

标签: django url format

我是Django的新手所以如果这个问题是noobish,我很抱歉。我想格式化从GET收到的Django网址,如下所示:

example.com/search?title=Test&city=London&category=SomeCategory
example.com/search?title=&city=London&category=SomeCategory
example.com/search?title=&city=&category=SomeCategory

进入这个:

example.com/search/Test/London/SomeCategory
example.com/search/post/London/SomeCategory
example.com/search/post/city/SomeCategory

最好的方法是什么?表格如何呈现这种外观?

谢谢!

1 个答案:

答案 0 :(得分:5)

它看起来像这样:

url(r'^search/(?P<title>\w+)/(?P<city>[\w -_]+)/(?P<category>[\w -_]+/$',
     'name_of_view', name='name_of_view')

......有这样的观点:

def name_of_view(request, title, city, category):
    ...

然后,您的表单将看起来如下:

<form method="post" action="{% url name_of_view title city category %}">
  ...
</form>

重点是您需要为不需要某些部分时提供默认参数(例如titlecity,如您的示例所示)。你必须在网址中提供它们。这意味着在视图中处理它们时,您需要检查它们是否具有某些特殊值,并有条件地处理这些值。

请注意,我对url模式中的正则表达式进行了一些有根据的猜测:如果需要,请进行调整。