django - 通过 Django 管理应用程序激活帐户时向用户发送电子邮件
问题描述
当通过 Django 管理应用程序激活用户帐户时,有没有办法向用户发送电子邮件?我可以独立于 Django 管理应用程序执行此操作,但我希望管理员在激活用户之前登录。有没有办法在不自定义 Django 管理应用程序代码的情况下实现这一点?提前致谢。
解决方案
好吧,您可以覆盖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
并基于该发送电子邮件的值。
推荐阅读
- c# - 如何将此字符串转换为标签?
- pycharm - PyCharm 中再次出现未解决的参考问题
- dynamics-crm - FetchXML 查询返回当前用户下属拥有的所有记录
- database - Solr 关系数据库
- visual-studio - 使用 msbuild.exe 编译项目列表
- javascript - 无法在脚本中读取 null 的属性“长度”
- sql - Postgresql LAG() 函数显示零而不是空
- pyspark - pyspark数据框的区分大小写的列删除操作?
- r - 将过滤器与 R 中的列表与 Google Analytics 包一起使用
- database - oracle中的问题而不是删除视图