1
resposta

Erro implementação

Ao tentar rodar o runserver ele apresenta o seguinte erro:

usuario = models.OneToOneField(User, related_name="perfil")
TypeError: __init__() missing 1 required positional argument: 'on_delete'
1 resposta

Oi Suellen, tudo bom?

Qual versão do Djando você está utilizando? É a 2?

A partir da versão do 2 do Django, o parâmetro on_delete é obrigatório nos mapeamentos dos relacionamentos OneToOne. Tenta trocar seu mapeamento para algo como:

usuario = models.OneToOneField(User, related_name="perfil", on_delete=models.DO_NOTHING)

Aqui, estamos dizendo para que ao remover a instância da classe Perfil, nada aconteça com a instância de User. As opções disponíveis são:

CASCADE, DO_NOTHING, PROTECT, SET, SET_DEFAULT, SET_NULL

Ao definir CASCADE, quando o perfil for removido o usuário também será =)

Abraço

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software