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