Estou olhando a documentação do Django e estou um pouco confuso quanto às diferenças entre:
from django.contrib.auth.models import AbstractUser
from django.db.models import Model
Tentei fazer o seguinte em uma aula e obtive um erro que tem a ver com o seguinte tópico: Herança múltipla em Python e MRO
O erro surgiu porque eu fiz o seguinte:
class Employee(Model, AbstractUser):
pass
Quando fui fazer migrações no Django, uma mensagem de erro dizia que violava o MRO. Quando pesquisei o que isso significava no Google, encontrei um post do Stack Overflow que menciona que isso acontece quando ele não consegue decidir entre as duas classes, um valor específico ou um método.
Na minha pesquisa, pode haver um conflito entre métodos semelhantes em sala de aula.
Espero ter um Employee que tenha uma autenticação personalizada e seja uma entidade no banco de dados. Como eu faria para conseguir isso? Tenho que escolher AbstractUser
entre Model
usar os dois?
AbstractUser
já é herdado deModel
, então você não precisa escolher entre eles - usarAbstractUser
sozinho lhe dá os dois.Então faça isso:
Aqui está a cadeia de herança para
AbstractUser
: