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

593
Vistas
Django ImportError: no se puede importar el nombre 'ReporterProfile' del módulo parcialmente inicializado 'accounts.models' (probablemente debido a una importación circular)

Tengo dos aplicaciones llamadas collection , accounts . Ambas aplicaciones tienen modelos definidos. Estoy importando un ReporterProfile modelo de la aplicación de accounts a collection . Del mismo modo, un Report modelo de la collection de aplicaciones a las accounts .

El modelo de Report de la aplicación de collection se llama en un método de clase de modelo en la aplicación de accounts como esta:

 from collection.models import Report class ReporterProfile(models.Model): .... def published_articles_number(self): num = Report.objects.filter(reporterprofile=self.id).count() return num

Del mismo modo, estoy importando los modelos ReporterProfile y User de la aplicación de accounts al modelo de aplicación de collection de esta manera:

 from accounts.models import ReporterProfile, User from <project_name> import settings class Report(models.Model): reporterprofile = models.ForeignKey(ReporterProfile, on_delete=models.CASCADE, verbose_name="Report Author") ... class Comment(models.Model): report = models.ForeignKey(Report, on_delete=models.CASCADE, related_name='comments') user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name="Comment by") ...

Al ejecutar el servidor o realizar migraciones, aparece el error:

Archivo "F:\project_name\accounts\models.py", línea 8, en from collection.models import Report

Archivo "F:\nombre_del_proyecto\colección\modelos.py", línea 2, desde cuentas.modelos import ReporterProfile, Usuario

ImportError: no se puede importar el nombre 'ReporterProfile' del módulo parcialmente inicializado 'accounts.models' (probablemente debido a una importación circular) (F:\project_name\accounts\models.py)

Creo que el error se debe a un patrón de importación incorrecto. ¿Qué tengo que hacer?

over 4 years ago · Santiago Trujillo
4 Respuestas
Responde la pregunta

0

Para ForeignKey :

En lugar de usar reporterprofile = models.ForeignKey(ReporterProfile, ...) , puede usar reporterprofile = models.ForeignKey("accounts.ReporterProfile", ...) , para que no tenga que importar el modelo.

Para evitar el error de importación de circulor:

En lugar de usar :

 from accounts.models import ReporterProfile [...] foo = ReporterProfile()

Puedes usar:

 import accounts.models [...] foo = accounts.models.ReporterProfile()
over 4 years ago · Santiago Trujillo Denunciar

0

Asegúrese de que está escribiendo los modelos de creación nane porque tengo el mismo problema y cuando eche un vistazo a mi importación, escribí userFormdata en lugar de userformData (escribí en mayúscula la 'f')

 #wrong inport from users_handler.models import userFormData #Correct import from users_handler.models import userformData
over 4 years ago · Santiago Trujillo Denunciar

0

importar los modelos como a continuación

 import collection class ReporterProfile(models.Model): .... def published_articles_number(self): num = collection.models.Report.objects.filter(reporterprofile=self.id).count() return num

similar

 import accounts from <project_name> import settings class Report(models.Model): reporterprofile = models.ForeignKey(accounts.models.ReporterProfile, on_delete=models.CASCADE, verbose_name="Report Author") ... class Comment(models.Model): report = models.ForeignKey(accounts.models.Report, on_delete=models.CASCADE, related_name='comments') user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name="Comment by") ...
over 4 years ago · Santiago Trujillo Denunciar

0

Asegúrese de nombrar correctamente los directorios y los archivos (sin que entren en conflicto con el nombre de otros módulos o archivos que django importa como parte del proceso de inicio). Nombro la app de directorio y un archivo random.py . Django mientras inicia busca algo similar y, en lugar de buscar el módulo real, termina en estos archivos que creé. Y de ahí las excepciones de importación de errores o circulares.

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