#25640: language error [IMPORTANT: cannot render templates]-- fixed -- please
patch
Django 1.8
-------------------------+-------------------------------------------------
Reporter: | Owner: Dan
literati |
Type: Bug | Status: new
Component: | Version: 1.8
Packaging |
Severity: Release | Keywords: get_language_bidi,
blocker | render_to_string, check_for_language
Triage Stage: | Has patch: 0
Unreviewed |
Easy pickings: 0 | UI/UX: 0
-------------------------+-------------------------------------------------
#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
--
Ticket URL: <https://code.djangoproject.com/ticket/25640>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/051.d0a3bc4b2ce84d1e256f3d43bb0128e4%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.