2013-05-31 2 views
0

У вас проблема такая же, как в вопросе this, но я хочу отметить свое приложение на русском языке. Есть ли обходной путь для этого?Django. Мета-приложение на русском языке.

Когда я только изменение app_label на английское название - он пытается создать таблицу в России в коде self.db_table = "%s_%s" % (self.app_label, self.module_name)

+0

Если вы используете интернационализацию, вы можете использовать 'ugettext_lazy («% s_% s »% (self.app_label, self.module_name))' – karthikr

+0

@karthikr, я цитировал код из django 1.5 core. –

ответ

1

Может быть, в том числе db_table вручную такое поведение может быть исправлено:

class Meta: 
    db_table = 'table_name' 
    app_label = 'app name in russian' 

Вы можете проверить here для получения дополнительной информации.

Надеюсь, это поможет!

+0

Нет, app_label имеет множество зависимостей в ядре. Это помогло db_table, но теперь у меня есть ошибка 'Reverse for 'app_list' с аргументами '()' и ключевыми словами '{' app_label ': u' \ u0410 \ u0434 \ u043c \ u0438 \ u043d \ u0438 \ u0441 \ u0442 \ u0440 \ u0438 \ u0440 \ u043e \ u0432 \ u0430 \ u043d \ u0438 \ u0435 \ u043c \ u0430 \ u0433 \ u0430 \ u0437 \ u0438 \ u043d \ u043e \ u0432 '}' не найдено. '.. Я думаю, что основной взлом не является решение. Но спасибо! –

+0

Вопрос только в том, что вы хотите пометить ваше приложение на русском языке? Для какого-то выхода? У этого наверняка есть решение! –

+0

Да, для некоторого выхода. Я думаю, изменение шаблона поможет, но это не так быстро. :) –

0

Использование класса Meta в вашей модели и определение app_label работает, но, скорее всего, вам придется сделать это для каждой модели вашего модуля.

Другой подход - фактически использовать i18n. В вашем файле po, если вы задали . с вашим app_label вы должны быть хорошими.

В приложении, добавлять/редактировать ро файл * app_label> локали> RU> django.po *

#set app label string 
msgid <app_label> 
msgstr "Ваше приложение этикетке" 

Вы можете прочитать больше о интернационализации here и о переводе here.

Смежные вопросы