Как проверить флаг TEMPLATE_DEBUG в шаблон django?

Существует Статья в журнале Perl на локализации программного обеспечения. Это предоставит Вам хорошую идею того, что можно ожидать при добавлении многоязычной поддержки. Это красиво записало и юмористический.

А именно, статья написана людьми, которые записали, и поддержите Locale::Maketext , таким образом, я рекомендовал бы, чтобы модуль, просто основанный на сумме боли, это ясно авторы, вынес, чтобы заставить ее работать правильно.

58
задан luc 7 December 2009 в 05:49
поделиться

3 ответа

Если вы не установили для TEMPLATE_CONTEXT_PROCESSORS какое-то другое значение в settings.py , Django будет автоматически загрузить препроцессор контекста отладки (как отмечено здесь ). Это означает, что у вас будет доступ к переменной под названием debug в ваших шаблонах , если settings.DEBUG истинно и IP-адрес вашего локального компьютера (который может быть просто 127.0.0.1) устанавливается в переменной settings.INTERNAL_IPS (которая описана здесь ).

70
ответ дан 24 November 2019 в 18:44
поделиться

Если вы еще этого не сделали, это всегда помогает узнать, решали ли / как другие с той же проблемой на djangosnippets. Самый последний фрагмент, работающий с тегом аналитики, - 1656: http://www.djangosnippets.org/snippets/1656/

Что хорошо в этом решении, так это то, что оно позволяет сохранить ваш GOOGLE_ANALYTICS_CODE = xxxxxx в local_settings.py в случае остальная часть вашего источника является общедоступной, ваш ключ остается закрытым. Кроме того, делается дополнительный шаг, чтобы не использовать аналитику для зарегистрированных пользователей.

Включает Javascript для Google Analytics. Не будет показывать код Google Analytics, когда DEBUG включен или штатным пользователям.

Используйте {% googleanalyticsjs%} в своих шаблонах.

Вы должны установить что-то вроде

 GOOGLE_ANALYTICS_CODE = "UA- 1234567-1 "

в вашем файле настроек.

Предполагается, что 'user' в ваших переменных шаблона - request.user , что будет, если вы используете:

 return render_to_response ('template.html', {}, context_instance = RequestContext (запрос))

(Предполагается, что django.core.context_processors.auth находится в TEMPLATE_CONTEXT_PROCESSORS , что по умолчанию)


 из шаблона импорта django
настройки импорта
register = template.Library ()


класс ShowGoogleAnalyticsJS (template.Node):
 def render (self, context):
 code = getattr (настройки, "GOOGLE_ANALYTICS_CODE", ложь)
 если не код:
 return ""

 если "пользователь" в контексте и контексте ["пользователь"] и контекст ["пользователь"]. is_staff:
 return ""

 если settings.DEBUG:
 return ""

 возвращение """
 
 
 "" "

def googleanalyticsjs (парсер, токен):
 return ShowGoogleAnalyticsJS ()

show_common_data = register.tag (googleanalyticsjs)
5
ответ дан 24 November 2019 в 18:44
поделиться

Вам нужно будет добавить флаг DEBUG в ваши context_processors .

Альтернативного способа может не быть. По крайней мере, ничего из того, о чем я знаю.

0
ответ дан 24 November 2019 в 18:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: