【发布时间】:2013-12-02 10:51:25
【问题描述】:
我想覆盖 django-registration 应用程序中的 send_activation_email,以便能够发送带有 html 内容的邮件,而不仅仅是文本。 请注意,该函数是在 RegistrationManager 模型的模型中定义的。
非常感谢。
【问题讨论】:
标签: django django-models django-registration
我想覆盖 django-registration 应用程序中的 send_activation_email,以便能够发送带有 html 内容的邮件,而不仅仅是文本。 请注意,该函数是在 RegistrationManager 模型的模型中定义的。
非常感谢。
【问题讨论】:
标签: django django-models django-registration
使用自定义模型,例如:
from registration.models import RegistrationProfile
class CustomRegistrationProfile(RegistrationProfile):
"""
Custom registration profile
"""
class Meta:
proxy = True
def send_activation_email(self, site):
"""
Override method for custom send email
"""
或者,这样的方法覆盖:
from registration.models import RegistrationProfile
def send_activation_email(self, site):
"""
Override method for custom send email
"""
RegistrationProfile.send_activation_email = send_activation_email
【讨论】:
由于 RegistrationProfile 是一个类,您可以像往常一样覆盖它。因此,您可以制作一个应用程序(或只是一个文件)并创建一个新的代理模型,该模型将使用您的 html 电子邮件。 (https://docs.djangoproject.com/en/dev/topics/db/models/#proxy-models)
当我上次不得不做类似的事情时,我改为更改了 activation_email.txt 文件。那是一个更快的解决方案。
不过可能有更简单的选择。
【讨论】: