在django oscar电子邮件中添加额外的上下文变量

时间:2015-09-16 09:05:39

标签: django django-oscar

尝试为所有django oscar电子邮件模板添加额外的上下文变量。我使其工作的唯一方法是覆盖ProfileUpdateView等特定视图。这种方法看起来很乱,我不得不覆盖很多文件。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:0)

通过检查源代码,ProfileUpdateView使用Django的基于类的视图FormView,后者又实现get_context_data方法,允许在视图中注入额外数据。 您可以简单地创建一个视图而不是ProfileUpdateView并覆盖get_context_data

class MyProfileUpdateView(ProfileUpdateView):
    ...
    def get_context_data(self, **kwargs):
        context = super(MyProfileUpdateView, self).get_context_data(**kwargs)
        context['somevar'] = SomeQueryMaybe.objects.all()
        return context

答案 1 :(得分:0)

结束制作自定义管理命令以手动完成,因为更改电子邮件模板的需求非常少。