phiron

Exemplo de cadastro de conta corrente usando class based view

Jan 17th, 2021
698
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class CreateContaCorrente(LoginRequiredMixin,SuccessMessageMixin,CreateView):
  2.     '''
  3.    Cria uma conta corrente para um projeto
  4.    '''
  5.     model = ContasBancarias
  6.     fields=['Nome','Status','idBanco','Agencia','Numero','DataAbertura',
  7.             'SaldoInicial']
  8.     template_name = 'sigcaa/subprojetos/form_cadastro_padrao.html'
  9.     botao_submit = ''
  10.     success_message = "%(Nome)s criado com sucesso"
  11.     projeto = -1
  12.     def get(self, request, *args, **kwargs):
  13.         pk_projeto = retornar_inteiro(kwargs.get('pk_projeto',-1),False)
  14.         if pk_projeto > 0:
  15.             self.projeto = get_object_or_404(Projetos,pk=pk_projeto)
  16.             if isinstance(self.projeto.idContaBancaria,ContasBancarias):
  17.                 url= reverse('institucional:atualizar_conta_corrente',kwargs={'pk':self.projeto.idContaBancaria.pk})
  18.                 return HttpResponseRedirect(url)
  19.         return super(CreateContaCorrente, self).get(request, *args, **kwargs)
  20.     def post(self, request, *args, **kwargs):
  21.         #do something else
  22.         self.usuario = request.user
  23.         pk_projeto = retornar_inteiro(kwargs.get('pk_projeto',-1),False)
  24.         if pk_projeto > 0:
  25.             self.projeto = get_object_or_404(Projetos,pk=pk_projeto)
  26.         if "_add_another" in request.POST:
  27.             self.botao_submit = "_add_another"
  28.         return super(CreateContaCorrente, self).post(request, *args, **kwargs)
  29.     def form_valid(self, form):
  30.         form.instance.usuario_criacao = self.request.user
  31.         form.instance.flags['projeto_institucional'] = self.request.session.get('projeto_institucional',{})
  32.         form.instance.save()
  33.         if self.projeto:
  34.             if not self.projeto.idContaBancaria:
  35.                 self.projeto.idContaBancaria = form.instance
  36.                 self.projeto.save()
  37.         return super(CreateContaCorrente, self).form_valid(form)
RAW Paste Data