2015-03-04 10 views
6

Mi chiedo quale sia la "best practice" per memorizzare stringhe di media lunghezza da utilizzare in un'interfaccia utente in Python/Django.Qual è la procedura migliore per archiviare le stringhe di messaggistica UI in Python/Django?

Esempio: Ho un modello error.html che accetta un campo error_description. Queste sono alcune frasi che spiegano all'utente cosa è andato storto e cosa potrebbero fare per risolverlo. Può essere diverso per le diverse pagine di errore, ma rimane abbastanza stabile nel codice (non c'è ragione per cui qualcuno che non può spingere il codice sorgente possa essere in grado di modificarlo), e può essere facilmente tenuto in memoria, quindi non lo faccio penso che sia il tipo di cosa che dovrebbe essere tenuta nel database.

La mia idea attuale è che dovrei semplicemente creare una sorta di messages.py file che ha un sacco di costanti stringa come questa:

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." 

In generale, c'è qualche modo canonico di memorizzare le stringhe che sono "troppo flessibile per essere codificato in ", ma" troppo piccolo e statico per i database "(e non in scala con il tuo utilizzo)? Sto pensando al tipo di cosa che sarebbe in un file strings.xml in un progetto Android.

Altre possibilità I'm juggling includono un file di testo che views.py legge e memorizza come costanti, in realtà solo le codifica e le inserisce nei file di modello.

Ci sono molti modi per farlo, e non è una cosa molto complicata, voglio solo sapere qual è il più "giusto".

Grazie! E fammi sapere se hai bisogno di maggiori informazioni!

risposta

6

Se siete assolutamente sicuri, queste stringhe non hanno bisogno di diventare dinamica basta creare un modulo strings.py e rilasciare le corde non come variabili ("costanti")

Tuttavia, come i messaggi sono utente visibile, è più probabilmente è necessario localizzarli a un certo punto della vita dell'applicazione. Di conseguenza, si prega di fare uso di ottima gettext supporto di Django:

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

+0

Grazie! Esattamente quello che volevo sapere! Sì, probabilmente questi dovranno essere localizzati ad un certo punto. –

Problemi correlati