#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.

Reply via email to