django admin - get_language正在获取默认语言,而不是活动语言

时间:2014-10-30 13:28:21

标签: python django django-admin

我在单独的js文件中有自定义管理表格验证js代码。

我想渲染相应的js文件,这意味着如果LANGUAGE_CODE'es',则js文件应以myjsfile_es.js结尾

我做了:

class BlogForm(forms.ModelForm):
   class Media:
       js = ('js/custom_%s.js' % get_language(),)

实际网页的网址是:

http://127.0.0.1:8000/es/admin/blog/blog/add/

但是get_language正在提供'en',所以我最终为custom_en.js页面提供了错误的js文件es

en是settings.py中的默认语言。

如何在admin.py中获取活动语言?

2 个答案:

答案 0 :(得分:1)

也许这是因为django从浏览器设置中获取了您的语言。我在其中一个项目中遇到了同样的问题,并使用该中间件解决了这个问题:

# -*- coding: utf-8 -*-


class IgnoreAcceptLanguageMiddleware(object):
   """
   Ignore Accept-Language HTTP headers

   """

    def process_request(self, request):
        if request.META.has_key('HTTP_ACCEPT_LANGUAGE'):
            del request.META['HTTP_ACCEPT_LANGUAGE']

答案 1 :(得分:-1)

您可以从django.utils.translation.get_language()

获取当前语言

检查文档:

https://docs.djangoproject.com/en/1.6/topics/i18n/translation/#using-translations-outside-views-and-templates