我试图覆盖CreateView的form_valid函数,以便在保存表单时向用户发送电子邮件。它将元素保存在数据库中并正确发送电子邮件,但随后显示“ NoneType”对象在尝试重定向时没有属性“ dict ”错误。
我尝试覆盖get_success_url方法,但完成后没有将需要发送的消息发送到模板。我还尝试将return redirect(self.get_success_url())更改为return redirect(success_url),同样的事情发生了,它没有错误地进行重定向,但是模板忽略了消息。
###views.py
class createpetition(SuccessMessageMixin, CreateView):
model = PQS
form_class = CrearPeticion
template_name = "peticion/createpetition.html"
success_url = reverse_lazy('createpetition')
success_message = "e"
def form_valid(self, form):
peticion = form.save()
usuario = peticion.nombreUsuario
usuario.enviarCorreo('Artemis - Nueva petición registrada con éxito','¡Gracias por comunicarte con nosotros!\n\nTu mensaje:\n\n' + peticion.descripcion)
return redirect(self.get_success_url())
###user models.py
def enviarCorreo(self, asunto, mensaje):
contenido = render_to_string('correo_base.html',{'mensaje':mensaje})
send_mail(asunto,contenido,'admin@artemis.com',[self.correo])```