Olá Carlos, como você está?
Peço desculpas pela demora em obter um retorno.
É possível adicionar campos extras ao modelo padrão de usuário do Django. Para isso, você pode criar um novo modelo que contenha as informações adicionais que deseja armazenar, como CPF, endereço, etc. e, em seguida, criar uma relação de chave estrangeira com o modelo de usuário do Django, que por padrão ocorre através da cláusula AUTH_USER_MODEL
que permite adicionar funcionalidades extras ao modelo de usuário (django.contrib.auth.models.User
), como mostro abaixo:
class UsuariosComCamposAdicionais(models.Model):
cpf = models.CharField(max_length=11)
endereco = models.CharField(max_length=255)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
Resultado no terminal
In [4]: from receitas.models import UsuariosComCamposAdicionais
In [5]: from django.contrib.auth.models import User
In [6]: user = User.objects.create(username='maria', email='maria@example.com', password='password')
In [7]: user_profile = UsuariosComCamposAdicionais.objects.create(cpf='12345678901', endereco='Rua Teste, 123', user=user)
In [8]: print(user_profile.cpf)
12345678901
In [9]: print(user_profile.endereco)
Rua Teste, 123
In [10]: print(user_profile.user.username)
maria
No exemplo acima, através da chave estrangeira criada, conseguimos adicionar mais campos ao modelo de usuário através da classe intermediária UsuariosComCamposAdicionais
.
Todavia, vale ressaltar que outra forma de customizar o modelo é estender algumas classes bases do Django, como a AbstractBaseUser
ou AbstractUser
, e definir os campos personalizados desejados. A título de curiosidade, caso queira entender mais sobre usuários customizados (CustomizeUser
) e criação de tabelas próprias de autenticação, recomendo a leitura dos artigos abaixo:
Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!