Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

847
Visualizações
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
3 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda