Как и где вызвать метод в представлении на основе классов Django

В рамках новогодней резолюции я пообещал себе, что научусь писать представления на основе классов, но, как оказалось, мне нужна помощь...

Я пытаюсь вызвать метод, который генерирует случайное число, а затем отправляет письмо до загрузки страницы, что мне удобно (я, вероятно, буду использовать celery для отправки почты в фоновом режиме).

Что я не понимаю, так это как и где вызывать методы random_code() и send_email() (см. ниже)?

Делать ли это, переопределяя setup(), dispatch() или get() и т.д.?

Может ли кто-нибудь дать мне базовый пример того, что нужно делать?

Класс будет выглядеть примерно так:

class VerifyCode(FormView):

    template_name = "account/verify.html"
    form_class = VerifyForm

    def random_code(self):
        #random_code generator
        return random_code

    def send_email(self):
        #code to send email

Заранее большое спасибо.

В зависимости от того, какой метод REST вы хотите вызвать. Если вы используете простой GET, то вызовите его в get() следующим образом:

class VerifyCode(FormView):

    template_name = "account/verify.html"
    form_class = VerifyForm

    def random_code(self):
        #random_code generator
        return random_code

    def send_email(self):
        #code to send email

    def get(self, request, *args, **kwargs):
        ...
        self.random_code()
        self.send_email()
        return ...

Подобным образом в post() для POST метода.

Другой момент - вы можете отправлять электронные письма напрямую с помощью Django. Я так и делаю, и это довольно просто. Проверьте этот DOCS. Вы можете задать еще один вопрос об этом, если у вас что-то есть.

Вернуться на верх