将额外的上下文变量添加到 django oscar 电子邮件中
Add extra context variables into django oscar emails
正在尝试为所有 django oscar 电子邮件模板添加额外的上下文变量。我让它工作的唯一方法是覆盖特定视图,如 ProfileUpdateView。这种方法看起来很乱,我不得不覆盖很多文件。有更好的方法吗?
通过查看源代码,ProfileUpdateView
使用 Django 的 Class Based View FormView
,后者又实现了 get_context_data
方法,允许在风景。
您可以简单地创建一个视图 inhiriting 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
最终制作了一个自定义管理命令来手动执行它,因为更改电子邮件模板的需要非常少。
正在尝试为所有 django oscar 电子邮件模板添加额外的上下文变量。我让它工作的唯一方法是覆盖特定视图,如 ProfileUpdateView。这种方法看起来很乱,我不得不覆盖很多文件。有更好的方法吗?
通过查看源代码,ProfileUpdateView
使用 Django 的 Class Based View FormView
,后者又实现了 get_context_data
方法,允许在风景。
您可以简单地创建一个视图 inhiriting 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
最终制作了一个自定义管理命令来手动执行它,因为更改电子邮件模板的需要非常少。