﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
25640	language error [IMPORTANT: cannot render templates]-- fixed -- please patch Django 1.8	literati	Dan	"#UPDATE: October 30, 2015 Django 1.8, Ubuntu Server 14.04, Apache 2.4
#1 note that by the time automatic notifications were implemented,
#I used crontab to schedule some recurrent events
#files with the name like 'task8am.sh' load a module through Django shell
#iTo render templates I used a Django shortcut - render_to_string
#while testing I found that this does not work and return an error.
#This can be easily replicated by just doing something like that:
#python3 manage.py shell
#some boilerplatecode
#a = render_to_string('template', {'context': 222 })
#After a little bit of peeking into the issue, I was able to troubleshoot it and edited some code in
#/usr/local/lib/python3.4/dist-packages/django/utils/translation/trans_real.py
#It seems that check_for_language and get_language_bidi methods are not willing
#to accept None values. I hope it will be resolved in the following versions of
#Django, but for now, here is my patch:
#256 def get_language_bidi():
#257     """"""
#258     Returns selected language's BiDi layout.
#259   
#260     * False = left-to-right layout
#261     * True = right-to-left layout
#262     """"""
#263     base_lang = get_language()
#264     if base_lang is None:  
#265         return False
#266     base_lang = get_language().split('-')[0]
#267     return base_lang in settings.LANGUAGES_BIDI
########
########
#400 @lru_cache.lru_cache(maxsize=1000)
#401 def check_for_language(lang_code):
#402     """"""
#403     Checks whether there is a global language file for the given language
#404     code. This is used to decide whether a user-provided language is
#405     available.
#406
#407     lru_cache should have a maxsize to prevent from memory exhaustion attacks,
#408     as the provided language codes are taken from the HTTP request. See also
#409     <https://www.djangoproject.com/weblog/2007/oct/26/security-fix/>.
#410     """"""
#411     # First, a quick check to make sure lang_code is well-formed (#21458)
#412     if lang_code is None or not language_code_re.search(lang_code):
#413         return False
#414     for path in all_locale_paths():
#415         if gettext_module.find('django', path, [to_locale(lang_code)]) is not None:
#416             return True
#417     return False"	Bug	closed	Packaging	1.8	Release blocker	duplicate	get_language_bidi, render_to_string, check_for_language		Unreviewed	0	0	0	0	0	0
