通过Django Admin Application激活帐户后向用户发送电子邮件

时间:2018-11-19 18:18:52

标签: django admin

通过Django管理应用程序激活用户帐户后,是否可以向用户发送电子邮件?我可以独立于Django admin应用程序执行此操作,但我希望管理员在激活用户之前先登录。有没有一种方法可以实现而无需自定义Django管理应用程序代码?提前致谢。

1 个答案:

答案 0 :(得分:0)

好吧,您可以覆盖ModelForm并在clean方法中添加电子邮件发送逻辑。还可以在Admin类中使用该模型形式。例如:

class UserForm(forms.ModelForm):
    manual_activation = forms.BooleanField()  # a flag which determines if the user should be manually activated

    class Meta:
        model = User
        fields = '__all__'


    def clean(self):
        manual_activation = self.cleaned_data.pop('manual_activation', False)  
        if manual_activation:
             # send_email logics

        return self.cleaned_data


class UserAdmin(admin.ModelAdmin):
     form = UserForm

将发生的情况是,如果在用户管理页面上单击某个用户,它将在表单中显示一个名为manual_activation的额外字段。如果您检查并保存了表单,则可以使用干净的方法,根据发送的电子邮件捕获manual_activation的值。

相关问题