Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Duvida - Perfil e Usuário qual a diferença?

O perfil não seria um usuário ? Só faltaria adicionar um campo senha no model do Perfil.

Por que preciso ter essa separação de usuário e perfil?

5 respostas

Ola Sony!

Para que você possa usufruir da infraestrutura de autenticação do Django você teria que usar a classe User no lugar de Perfil. Veja que isso não faria sentido, porque a classe User que já vem com o Django não possui todos os atributos que precisamos.

Foi por isso que criamos uma associação da classe Perfil com a classe User através do nome usuario. Com isso, podemos continuar com nossa classe Perfil e ainda pegar carona na infra do Django de autenticação de usuário.

Ficou mais claro agora? É uma forma de resolver o problema de autenticação.

Oi Sony! Aguardo seu Feedback para saber se esta tudo ok.

Entendi depois que vi a última aula ficou mais claro. Mas eu poderia fazer a classe Perfil herdar a classe User.. Dessa forma User seria a classe Pai e Perfil a classe Filho? Isso funcionaria? Ou a melhor forma eh fazer atribuição ou as duas formas dariam certo?

solução!

Em teoria deve funcionar, apesar deu usar composição ao invés de herança, que é o caso do nosso projeto. Usar composição como você fez evita que se um dia alguém adicionar métodos bizarros em User sua classe Perfil não será afetada, pois ela só usará o essencial para realizar a autenticação.

Por fim, sugiro você pesquisar o tema: composição x herança para engrandecer ainda mais o assunto.

Bom estudo Sony!

Entendi..realmente faz sentido o que você falou.. Vou da uma pesquisada sim nesse assunto.

Obrigado :)