Отправка электронной почты пользователю при активации учетной записи через приложение администратора Django - PullRequest
0 голосов
/ 19 ноября 2018

Есть ли способ отправить электронное письмо пользователю, когда его учетная запись активирована через приложение администратора Django? Я могу сделать это независимо от приложения администратора Django, но я хочу, чтобы администратор вошел в систему до того, как он активирует пользователя. Есть ли способ достичь этого без настройки кода приложения администратора Django? Заранее спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018

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

...