[Python] Obter dados na view do Django

Discussão em 'Python' iniciado por Stack, Dezembro 13, 2024.

  1. Stack

    Stack Membro Participativo

    Na hora do cadastro de um novo usuário ele escolhe de qual grupo faz parte por meio de um select. Cada grupo possui um responsável, como faço para pegar o email desse responsável para enviar um email de pedido de autorização de acesso?

    Nesse código eu envio email mas para o email que o usuário preencheu e não para o responsável do grupo que foi escolhido.

    models.py

    class Grupo(models.Model):

    grupo = models.CharField(max_length=255)
    divisao = models.ForeignKey(Divisao)
    responsavel = models.ForeignKey(User)

    @property
    def get_responsavel(self):
    return self.responsavel
    def __unicode__(self):
    return self.grupo


    class Perfil(User):
    telefone = models.CharField(max_length=255)
    ramal = models.CharField(max_length=255)
    data_inicio = models.DateField(default=datetime.now, blank=True)
    data_fim = models.DateField(null=True, blank=True)
    e_responsavel = models.BooleanField(default=False)
    vinculo = models.ForeignKey(Vinculo)
    grupos = models.ForeignKey(Grupo)
    divisao = models.ForeignKey(Divisao)

    def __unicode__(self):
    return self.first_name


    views.py

    def cadastro(request, group_id=None):
    if request.method == 'POST':
    form = UserForm(request.POST)
    formulario = form.save()

    if form.is_valid():
    formulario.set_password(form.cleaned_data['password'])
    formulario.save()

    # Envio de email
    current_site = get_current_site(request)
    message = render_to_string('acc_active_email.html', {
    'user': formulario,
    'domain': current_site.domain,
    'uid': urlsafe_base64_encode(force_bytes(formulario.pk)),
    'token': account_activation_token.make_token(formulario),
    })
    mail_subject = 'Novo usuario no sistema'


    group = Grupo.objects.get(pk=group_id)
    responsavel = group.get_responsavel()
    to_email = responsavel.email
    email = EmailMessage(mail_subject, message, to=[to_email])
    email.send()

    return HttpResponseRedirect('/cadastro/login/')

    else:
    form = UserForm()
    return render(request, 'cadastro.html', {
    'form': form,

    })

    Continue reading...

Compartilhe esta Página