2015-03-04 8 views
6

Zastanawiam się, jaka jest "najlepsza praktyka" do przechowywania średnich długości ciągów do użycia w interfejsie w Pythonie/Django.Jaka jest najlepsza praktyka przechowywania ciągów komunikatów UI w Pythonie/Django?

Przykład: Mam szablon error.html, który ma pole error_description. Oto kilka zdań wyjaśniających użytkownikowi, co poszło nie tak i co mogą zrobić, aby rozwiązać ten problem. Może być różny dla różnych stron błędów, ale pozostaje dość stabilny w kodzie (nie ma powodu, aby ktoś, kto nie może przesłać kodu źródłowego, mógł go modyfikować) i może być łatwo przechowywany w pamięci, więc nie myślę, że to coś, co powinno być przechowywane w bazie danych.

Moja obecna idea jest taka, że ​​należy po prostu stworzyć jakiś messages.py pliku, który ma kilka stałych łańcuchowych tak:

ERROR_UNAUTHENTICATED_AJAX_EXPLANATION = "Hello, so the only way that this error should occur is if someone attempts to directly call our AJAX endpoint without having the verification code. Please don't do this, it's against the principles of this art projects." 

W ogóle, to jest jakiś kanoniczny sposób przechowywania strun, które są „zbyt elastyczny, aby być zakodowanym w ", ale" za mały i statyczny dla baz danych "(i nie skalować się z użyciem)? Myślę o tym, co będzie w pliku strings.xml w projekcie Android.

Inne możliwości Żonglowania to plik tekstowy, który view.py odczytuje i zapisuje jako stałe, w rzeczywistości po prostu je koduje i umieszcza w plikach szablonów.

Jest wiele sposobów na zrobienie tego i nie jest to bardzo skomplikowana sprawa. Po prostu chcę wiedzieć, który z nich jest najbardziej "właściwy".

Dzięki! Daj mi znać, jeśli potrzebujesz więcej informacji!

Odpowiedz

6

Jeśli jesteś absolutnie pewny, te struny nie muszą stać się dynamicznym wystarczy utworzyć moduł strings.py i upuść sznurki tam jako zmienne („stałych”)

Jednakże, jak komunikaty są widoczne użytkownik, to będzie najbardziej prawdopodobnie trzeba je zlokalizować w jakimś momencie życia aplikacji. W związku z tym, prosimy skorzystać z doskonałej gettext wsparcia Django:

https://docs.djangoproject.com/en/1.7/topics/i18n/

+0

Dzięki! Dokładnie to, co chciałem wiedzieć! Tak, prawdopodobnie będą musiały być zlokalizowane w pewnym momencie. –

Powiązane problemy