Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

434
Vistas
RuntimeError: __class__ no establecido definiendo 'AbstractBaseUser' como <class 'django.contrib.auth.base_user.Abstract BaseUser'>. Se propagó __classcell__
  1. Recibo este error al intentar migrar bases de datos después de configurar manualmente la base de datos PostgreSQL para el proyecto.
  2. Estaba tratando de ejecutar el proyecto quora clonado bifurcado de github cuando apareció este error.

Siga la descripción completa del error:

 RuntimeError: __class__ not set defining 'AbstractBaseUser' as <class 'django.contrib.auth.base_user.Abstract BaseUser'>. Was __classcell__ propagated to type.__new__?

Sigue el rastro:

 Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "C:\Users\user\Desktop\quora-clone-master\env\lib\site-packages\django\core\management\__init__.py", line 353, in execute_from_command_line utility.execute() File "C:\Users\user\Desktop\quora-clone-master\env\lib\site-packages\django\core\management\__init__.py", line 327, in execute django.setup() File "C:\Users\user\Desktop\quora-clone-master\env\lib\site-packages\django\__init__.py", line 18, in setup apps.populate(settings.INSTALLED_APPS) File "C:\Users\user\Desktop\quora-clone-master\env\lib\site-packages\django\apps\registry.py", line 108, in populate app_config.import_models(all_models) File "C:\Users\user\Desktop\quora-clone-master\env\lib\site-packages\django\apps\config.py", line 202, in import_models self.models_module = import_module(models_module_name) File "C:\Users\user\Desktop\quora-clone-master\env\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 783, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "C:\Users\user\Desktop\quora-clone-master\env\lib\site-packages\django\contrib\auth\models.py", line 4, in <module> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "C:\Users\user\Desktop\quora-clone-master\env\lib\site-packages\django\contrib\auth\base_user.py", line 49, in <module> class AbstractBaseUser(models.Model): RuntimeError: __class__ not set defining 'AbstractBaseUser' as <class 'django.contrib.auth.base_user.AbstractBaseUser'>. Was __classcell__ propagated to type.__new__?
over 4 years ago · Santiago Trujillo
5 Respuestas
Responde la pregunta

0

Verifique sus versiones de python y django. Tuve el mismo problema y tuve que instalar un python anterior con via pyenv.

over 4 years ago · Santiago Trujillo Denunciar

0

Considere esta línea

 class AbstractBaseUser(models.Model): RuntimeError: __class__ not set defining 'AbstractBaseUser'as<class'django.contrib.auth.base_user.AbstractBaseUser'>. Was __classcell__ propagated to type.__new__?
over 4 years ago · Santiago Trujillo Denunciar

0

Este enfoque resolvió mi problema usando django - version 1.9.5 . Por lo tanto, si necesita ejecutar una aplicación antigua de Django con un nuevo python, consulte el siguiente enfoque:

Si está utilizando un entorno virtual, vaya a: venv/lib/Python3.8/site-packages/django/db/models/base.py . Luego, en la class ModelBase(type): model agregue el siguiente código:

(ASEGÚRESE DE AGREGAR SOLO EL CÓDIGO ESPECIFICADO)

 class ModelBase(type): """ Metaclass for all models. """ def __new__(cls, name, bases, attrs): super_new = super(ModelBase, cls).__new__ # Also ensure initialization is only performed for subclasses of Model # (excluding Model class itself). parents = [b for b in bases if isinstance(b, ModelBase)] if not parents: return super_new(cls, name, bases, attrs) # Create the class. module = attrs.pop('__module__') new_class = super_new(cls, name, bases, {'__module__': module}) # <========== THE CODE BELLOW SHOULD BE ADDED ONLY ======>> new_attrs = {'__module__': module} classcell = attrs.pop('__classcell__', None) if classcell is not None: new_attrs['__classcell__'] = classcell new_class = super_new(cls, name, bases, new_attrs) # <========== THE CODE ABOVE SHOULD BE ADDED ONLY ======>> # the rest of the class .....

Ahora, vaya al directorio donde se encuentra el archivo manage.py y migre su aplicación.

Luego, python manage.py run .

Tengo esta respuesta de este sitio web.

over 4 years ago · Santiago Trujillo Denunciar

0

Ocurrencia

Al instalar un paquete de python, pipenv (administrador de paquetes) rebajó la versión de django a 1.0.x mientras que mi versión de python en virtual env era 3.8.5 .

Solución

django reinstalado a la última versión 3.2.4 para que coincida con la última versión de python 3.8.5 .

over 4 years ago · Santiago Trujillo Denunciar

0

RuntimeError: __class__ not set defining 'AbstractBaseUser' as ... error (era un proyecto heredado de django 1.9) usando virtualenv y vinculándolo a la instalación de Python 3.6:

  1. Instalar virtualenv :

     pip3 install virtualenv
  2. Descargue Python 3.6 antiguo e instálelo con opciones mínimas (solo la casilla de verificación pip y no "Agregar a RUTA" en las opciones) en alguna ruta (usé ese directorio del proyecto django, /my_django_project/python36 por ejemplo).

  3. Cree un entorno virtual, vinculándolo a Python antiguo:

     cd /my_django_project virtualenv --python=./python36/python.exe venv
  4. Activar entorno virtual:

     .\venv\Scripts\activate
  5. Instale el viejo django==1.9 (y otros paquetes cuando sea necesario):

     (venv) pip install django==1.9
  6. Inicie el backend de django en el entorno virtual activado:

     (venv) python manage.py runserver
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda