Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Pessoa(models.Model):
- '''
- Classe abstrata de pessoas
- '''
- user = models.OneToOneField(User)
- nome_usuario = models.CharField(max_length = 100)
- nome = models.CharField(max_length = 100)
- tel_fixo = models.CharField(u"Telefone", max_length = 14, blank = True, null = True)
- tel_celular = models.CharField(u"Celular", max_length = 14, blank = True, null = True)
- email = models.EmailField(u"Email", blank = True, null = True)
- inativo = models.BooleanField("Oculto?")
- comum = models.ForeignKey(Comum)
- observacoes = models.TextField(u"Observações", max_length = 1000, blank = True, null = True)
- def nusuario(self, nome = ""):
- '''
- classe que cria um nome de usuário
- '''
- cod_ = Comum.objects.get(id = self.comum.id)
- cod_relatorio = cod_.cod_relatorio
- n_pessoa = nome.lower()
- ls_n_pessoa = n_pessoa.split(" ")
- n_usuario = ls_n_pessoa[0] + " " + ls_n_pessoa[len(ls_n_pessoa) - 1]
- teste = n_usuario.replace(" ", "_") + "." + str(cod_relatorio)
- usr = User.objects.filter(username = teste)
- if usr:
- n_usuario = n_pessoa + "1"
- return self.nusuario(n_usuario)
- else:
- return teste
- def save(self, *args, **kwargs):
- '''
- reimplementando o metodo salvar...
- '''
- if self.id == None:
- nome = self.nome
- lsnome = self.nome.split(" ")
- nome_usuario = self.nusuario(nome)
- usr = User.objects.create_user(nome_usuario, self.email, self.nome)
- usr.first_name = u"" + lsnome[0]
- usr.last_name = u" ".join(lsnome[1:])
- usr.is_active = False
- usr.save()
- self.user = usr
- super(Pessoa, self).save(*args, **kwargs)
- else:
- self.user.first_name = self.nome + u''
- self.user.email = self.email
- self.user.save
- super(Pessoa, self).save(*args, **kwargs)
- class Meta:
- abstract = True
- ordering = ['nome']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement