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