2011-05-04 81 views
0

我有一個網站,我設置了django-localeurl,並且每個動態創建的鏈接都按預期方式工作,但所有靜態鏈接都不會,例如,如果我有一個href =「{cat.get_absolute_url} 「我訪問西班牙語(/ es /)或英語(/ en /)網站,它會按照預期重定向,但使用href =」/ museum /「重定向到默認語言代碼。django-localeurl和靜態鏈接

問題是如何根據用戶正在觀看的情況將靜態鏈接重定向到英語或西班牙語網站?

回答

0

get_absolute_url(和其他地方,你都硬編碼鏈接)應該使用@permalink裝飾,或以其它方式使用Django的「反向」工具(這是猴子打補丁的localeurl)

+0

所有模型的方法get_absolute_url使用@permalink裝飾,問題出現在模板中時,我的鏈接被編碼爲/ warranty /,當我點擊它時,django-localeurl中間件會將我帶到默認語言,而不是我正在使用的語言。經過編碼的鏈接主要針對平板頁面,所以要麼我不理解您的解決方案,要麼您不瞭解我的問題......仍然非常感謝您的回覆,如果我不理解您的解決方案,請澄清一下。 – maumercado 2011-05-05 02:04:05

+0

1]盡你所能地_du_硬編碼網址到你的模板中。使用{%url「warranty_page」%}或其他。 我和carljm(當前localeurl維護者)就這個問題進行了交流,基本上他說他會根據localeurl的原則從不支持這個用例。對於localeurl來說,這意味着網址無固定狀態。對我來說,如果你的網址只能以/ [locale]/path/to/place/then/path/to/place /開頭,可以有狀態地重定向。如果你想要,我有一個很大的竅門,讓我知道。 – 2011-05-05 02:43:50

+0

這是我的解決方法hack - https://gist.github.com/5c7b5f48b41b8df1ab98 – 2011-05-05 02:47:22