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

254
Vistas
Dependencia circular inesperada en archivos de migración

Error - django.db.migrations.exceptions.CircularDependencyError: accounts.0001_initial, songs.0001_initial

Tengo dos cuentas de aplicaciones y canciones. Las canciones tienen dos archivos modelo: models.py y song_metadata_models.py

accounts/models.py

 class AppUser(models.Model): user = models.OneToOneField(User) user_languages = models.ManyToManyField('songs.SongLang') user_genres = models.ManyToManyField('songs.SongGenre') def __str__(self): return self.user.username

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

songs/song_metadata_models.py

 class SongGenre(models.Model): short_name = models.CharField(max_length=10) full_name = models.CharField(max_length=100) def __str__(self): return self.full_name class SongLang(models.Model): short_name = models.CharField(max_length=10) full_name = models.CharField(max_length=100) def __str__(self): return self.full_name

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

songs/models.py

 class Song(models.Model): # Fields name = CharField(max_length=255) slug = AutoSlugField(populate_from='name', blank=True) created = DateTimeField(auto_now_add=True, editable=False) last_updated = DateTimeField(auto_now=True, editable=False) url = CharField(max_length=100) artist = CharField(max_length=50) album = CharField(max_length=50) like = BooleanField(default=False) dislike = BooleanField(default=False) # Relationship Fields requested_by = ForeignKey('accounts.AppUser', related_name='song_requested_by') dedicated_to = ManyToManyField('accounts.AppUser', null = True, blank = True,related_name='song_dedicated_to') recommended_to = ManyToManyField('accounts.AppUser', null = True, blank = True,related_name='song_recommended_to')

¿Cómo resolver esto? No hay dependencia circular a nivel de modelos, entonces ¿por qué este problema?

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

0

Solución 1: mueva many2many de AppUser a SongLang y SongGenre. Una relación m2m es simétrica de manera predeterminada, por lo que puede declararla en cualquier lado de la relación (nota: solo asegúrese de configurar el nombre relacionado con la forma en que se nombraron sus campos en el modelo related_name ).

Solución 2: mueva sus modelos SongGenre y SongLang a una tercera aplicación (la solución canónica a las dependencias circulares)

Solución 3: finalmente intente crear primero el modelo AppUser sin los campos m2m, cree la migración inicial y luego agregue los campos m2m (aunque no estoy seguro de que funcione).

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