当前位置: 首页 > 面试题库 >

在Django视图中设置语言

周奇
2023-03-14
问题内容

背景: 付款服务在后台对付款结果执行ping操作时,将调用该视图-之后,我需要以正确的语言发送电子邮件以确认付款,依此类推。我可以从付款服务器的请求中获取语言代码,并希望将其与Django的i18n系统一起使用,以确定以哪种语言发送电子邮件。

因此,我需要在视图中设置django应用程序的语言。然后一次完成我的模板渲染和电子邮件发送。

设置request.session['django_language'] = lang仅在我测试时影响下一个视图。

还有其他方法吗?


问题答案:

引用Django语言环境中间件(django.middleware.locale.LocaleMiddleware)中的部分:

from django.utils import translation

class LocaleMiddleware(object):
    """
    This is a very simple middleware that parses a request
    and decides what translation object to install in the current
    thread context. This allows pages to be dynamically
    translated to the language the user desires (if the language
    is available, of course).
    """

    def process_request(self, request):
        language = translation.get_language_from_request(request)
        translation.activate(language)
        request.LANGUAGE_CODE = translation.get_language()

该translation.activate(language)是重要的一点。



 类似资料:
  • 7.3.1 视图配置 可配置当前视图的名称,填写备注,及设定要排除的网址查询参数。 关于排除网址查询参数 对于每个视图,在受访页面中,系统将合并此处配置的排除网址查询参数,而不体现在受访页面的后缀参数中。 其中,系统默认排除的网址参数包括 秒针规范,谷歌规范,及系统默认的自定义广告参数规范。具体字段为: mz_ca,mz_sp,mz_sb,mz_kw, utm_content,utm_term,u

  • 我创建了一个几乎为空的UIViewController类,名为。在视图中,我设置标题并添加一个关闭按钮到导航我tem.leftBarButtonItem。 我的如下所示: 显示viewController时,其视图的背景为黑色。如何设置它的视图以用空视图填充屏幕——就像在故事板中设置UIViewController一样? 我已经尝试将以下内容添加到视图,但是视图仍然是黑色的:

  • 问题内容: 我有一个带有各种 屏幕 的应用程序。每个屏幕都分配一个URL,如,,,等。 在我的主要HTML文件中,我有一个根据用户选择的路线进行更新的元素。到目前为止,一切都很好。 现在,其中一些屏幕具有子导航。例如,确实有一个收件箱和一个已发送的文件夹。他们用两列显示自己:左侧的子导航,右侧的相应文件夹的邮件。 当您导航到时,它将重定向到,因此 收件箱 基本上是 邮件 的默认子视图。 我该如何设

  • 我有一个具有各种屏幕的应用程序。每个屏幕都分配了一个URL,例如,,,等等。 在我的主HTML文件中,我有一个元素,它根据用户选择的路线进行更新。到目前为止,一切顺利。 现在这些屏幕中的一些有子导航。例如,确实有一个收件箱和一个已发送的文件夹。它们有两列:左边是子导航,右边是相应文件夹的邮件。 当您导航到时,它会将您重定向到,因此基本上收件箱是邮件的默认子视图。 我该怎么设置呢? 我目前能想到的唯

  • 问题内容: Django视图指向一个函数,如果您只想更改一些功能,则可能会出现问题。是的,函数中可以有数百万个关键字参数,如果有语句,甚至可以更多,但是我在想更多的面向对象方法。 例如,我有一个显示用户的页面。该页面与显示组的页面非常相似,但仍与仅使用另一个数据模型不太相似。小组也有成员等… 一种方法是将视图指向类方法,然后扩展该类。有没有人尝试过这种方法或有其他想法? 问题答案: 我已经创建并使

  • 我在UIViewController的视图中有一个。我想要的是将它的高度设置为视图的三分之一,无论屏幕大小如何。我当然知道如何从代码中做到这一点。但是,如何仅使用情节提要/界面构建器来实现这一点呢?