Advertisement
phiron

ModelCadastro

May 15th, 2012
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.11 KB | None | 0 0
  1. class Pessoa(models.Model):
  2.     '''
  3.    Classe abstrata de pessoas
  4.    '''
  5.     user = models.OneToOneField(User)
  6.     nome_usuario = models.CharField(max_length = 100)
  7.     nome = models.CharField(max_length = 100)
  8.     tel_fixo = models.CharField(u"Telefone", max_length = 14, blank = True, null = True)
  9.     tel_celular = models.CharField(u"Celular", max_length = 14, blank = True, null = True)
  10.     email = models.EmailField(u"Email", blank = True, null = True)
  11.     inativo = models.BooleanField("Oculto?")
  12.     comum = models.ForeignKey(Comum)
  13.     observacoes = models.TextField(u"Observações", max_length = 1000, blank = True, null = True)
  14.     def nusuario(self, nome = ""):
  15.         '''
  16.        classe que cria um nome de usuário
  17.        '''
  18.         cod_ = Comum.objects.get(id = self.comum.id)
  19.         cod_relatorio = cod_.cod_relatorio
  20.         n_pessoa = nome.lower()
  21.         ls_n_pessoa = n_pessoa.split(" ")
  22.         n_usuario = ls_n_pessoa[0] + " " + ls_n_pessoa[len(ls_n_pessoa) - 1]
  23.         teste = n_usuario.replace(" ", "_") + "." + str(cod_relatorio)
  24.         usr = User.objects.filter(username = teste)
  25.         if usr:
  26.             n_usuario = n_pessoa + "1"
  27.             return self.nusuario(n_usuario)
  28.         else:
  29.             return teste
  30.     def save(self, *args, **kwargs):
  31.         '''
  32.        reimplementando o metodo salvar...
  33.        '''
  34.         if self.id == None:
  35.             nome = self.nome
  36.             lsnome = self.nome.split(" ")
  37.             nome_usuario = self.nusuario(nome)
  38.             usr = User.objects.create_user(nome_usuario, self.email, self.nome)
  39.             usr.first_name = u"" + lsnome[0]
  40.             usr.last_name = u" ".join(lsnome[1:])
  41.             usr.is_active = False
  42.             usr.save()
  43.             self.user = usr
  44.             super(Pessoa, self).save(*args, **kwargs)
  45.         else:
  46.             self.user.first_name = self.nome + u''
  47.             self.user.email = self.email
  48.             self.user.save
  49.             super(Pessoa, self).save(*args, **kwargs)
  50.                                        
  51.     class Meta:
  52.         abstract = True
  53.         ordering = ['nome']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement