Ну, вы можете переопределить 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
и на основании этого отправленного электронного письма.