Làm cách nào để đặt urlpattern dựa trên tên miền hoặc TLD, ở Django?Làm cách nào để đặt urlpattern dựa trên tên miền hoặc TLD, ở Django?
Đối với một số liên kết, Amazon hiển thị url bằng ngôn ngữ gốc dựa trên trang web tld của nó.
http://www.amazon.de/bücher-buch-literatur/ (de: Sách => Bucher)
http://www.amazon.fr/Nouveautés-paraître-Livres/ (fr: Sách => Livres)
http://www.amazon.co.jp/和書-ユーズドブッ-英語学習/ (jp: Sách => 和 書)
(các liên kết chưa đầy đủ và chỉ hiển thị dưới dạng mẫu.)
Có thể lấy tên máy chủ lưu trữ trong urls.py không? (đối tượng yêu cầu không có sẵn trong urls.py) hoặc có thể trong process_request của phần mềm trung gian và sử dụng nó trong urls.py (cách ???)
Bất kỳ đề xuất thay thế nào để đạt được điều này?
#---------- pseudocode ----------
website_tld = get_host(request).split(".")[-1]
#.fr French : Books : Livres
#.de German : Books : Bücher
if website_tld == "fr":
lang_word = "Livres"
elif website_tld == "de":
lang_word = "Bücher"
else:
lang_word = "books"
urlpatterns = patterns('',
url(r'^%s/$' % lang_word,books_view, name="books"),
)
Các mẫu url cần phải được xây dựng dựa trên loại tên miền và sau đó trong mẫu, <a href="{% url books %}" >{% trans "books" %}</a>
để render html như <a href="Bücher">Bücher</a>
hoặc <a href="Livres">Livres</a>
Cảm ơn Vân, Có thể tôi đang thiếu điểm từ câu hỏi khác mà bạn giới thiệu. Ở đây, các mẫu url cần được xây dựng dựa trên tld và sau đó trong mẫu, {% trans "books" %} để hiển thị html là Bücher hoặc Livres – e70
Tôi đã cập nhật câu hỏi để phản ánh điều này. – e70
Văn, Cảm ơn bạn đã viết chi tiết như vậy! – e70