2012-10-19 49 views
0

我是Django的新手,所以我很抱歉如果這個問題不好。我想格式從GET收到Django的URL和是這樣的: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 

什麼是做到這一點的最好方法是什麼?提交表單的形式如何?

謝謝!

回答

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> 

要點是您需要提供默認參數,以便不需要某些部分(如title或01根據你的例子,)。你必須在url中提供它們。這意味着,在您的視圖中處理它們時,您需要檢查它們是否具有特殊的價值,並有條件地處理這些值。

請注意,我對url模式中的正則表達式進行了一些有教育的猜測:如果需要,進行適應。