ответ

58

Если вы хотите что-то вы можете использовать внутри Джанго, попробуйте:

from django.conf import settings 

это будет в формате выше, что делает его идеальным для назначение в одном из ваших вариантов models = fields. (Т.е. user_language = models.CharField(max_length=7, choices=settings.LANGUAGES))

LANGUAGES = (
    ('ar', gettext_noop('Arabic')), 
    ('bg', gettext_noop('Bulgarian')), 
    ('bn', gettext_noop('Bengali')), 
    etc.... 
    ) 

Примечание об использовании параметров:

Note that django.conf.settings isn’t a module

+0

Добавлен бонус к этому методу: поскольку gettext_noop() - ленивый поиск, имена языков будут переведены на основе языкового стандарта вашего пользователя в момент визуализации шаблона. Значение английского пользователя увидит «французский», но французский пользователь увидит «Francais» – Thomas

+0

. Есть ли ссылки на указанные языки .. – Hulk

+2

http://code.djangoproject.com/browser/django/trunk/django/conf /global_settings.py предоставит вам полный список языков, поддерживаемых django, и http://docs.djangoproject.com/en/dev/ref/settings/#languages ​​дает вам обзор использования. Надеюсь это поможет. – Thomas

0

я понял из Django Project, что вы можете использовать только фиктивную функцию GetText:

Если определить пользовательские LANGUAGES, как описано в предыдущей брошюре, нормально отмечать языки как строки перевода - но используйте «манекен» ugettext(), а не в django.utils.translation. Вы никогда не должны импортировать django.utils.translation из вашего файла настроек, потому что модуль сам по себе зависит от настроек, и это приведет к круговой импорта. ".

Потребовалось некоторое время, чтобы найти решение, но я, наконец, получил его, выбор поля модели должен иметь кортеж с функциями реального GetText с лямбда-функции манекена может быть завернутые в функции реального GetText следующим образом:

from django.utils.translation import ugettext_lazy as _ 

language = models.CharField(max_length=5, choices=map(lambda (k,v): (k, _(v)), settings.LANGUAGES), verbose_name=_('language')) 
4
from django.conf import settings 

#note settings is an object , hence you cannot import its contents 

settings.configure() 

#note LANGUAGES is a tuple of tuples 

lang_dict = dict(settings.LANGUAGES) 

#use lang_dict for your query. 

print lang_dict['en'] 

с уважением

SACHIN

10

Предыдущие ответы упоминают только получение LANGUAGE из settings.py, hovewer есть большая вероятность того, что эта переменная будет перезаписан. Таким образом, вы можете получить полный список от django.conf.global_settings.LANGUAGES

from django.db import models 

from django.conf.global_settings import LANGUAGES 

class ModelWithLanguage(models.Model): 
    languages = models.CharField(max_length=7, choices=LANGUAGES)