Django 1.8 Circular Dependecy Fehler

Ich habe Schwierigkeiten, Lösungen für dieses Problem online zu finden. Alles, was ich habe, ist "To manually resolve a CircularDependencyError, break out one of the ForeignKeys in the circular dependency loop into a separate migration, and move the dependency on the other app with it. If you're unsure, see how makemigrations deals with the problem when asked to create brand new migrations from your models. In a future release of Django, squashmigrations will be updated to attempt to resolve these errors itself." Von hier aus: docs . Ich bin irgendwie neu für Django-Migrationen, ich würde gerne eine verständlichere und leicht zu beantwortende Antwort.

Ich bekomme diesen Fehler:

  • Mock Befehlszeilenargumente für Python-Skript mit `optparse`?
  • So führen Sie einen bestimmten Test in Nose2 aus
  • Mit Hitsort und Quicksort zusammen
  • Asynchrone COMET-Abfrage mit Tornado und Prototyp
  • Statische Methode vs Modulfunktion in Python
  • Senden von MESSAGE an eine Person auf Facebook mit Python
  •  raise CircularDependencyError(", ".join("%s.%s" % n for n in cycle)) django.db.migrations.graph.CircularDependencyError: libros.0001_initial, perfiles.0001_initial 

    Ich weiß nicht, wie man findet, wo ist die CircularDependency und ich bin nicht sicher, wie es zu lösen Wie Sie sehen können, sind die Migrationen n001 – das ist, weil ich versucht habe, sie zu löschen und es wieder zu tun, funktionierte nicht. Bitte helfen Sie.

    2 Solutions collect form web for “Django 1.8 Circular Dependecy Fehler”

    Sie sollten eine Migration ohne Fremdschlüssel erstellen und später die FK hinzufügen.

    Nehmen wir an, dass Sie diese Modelle erstellen möchten:

    Libros / models.py :

     class Libro(models.Model): name = models.CharField(max_length=20) perfile = models.ForeignKey('perfiles.Perfile', null=True) 

    Perfiles / models.py :

     class Perfile(models.Model): name = models.CharField(max_length=20) libro = models.ForeignKey('libros.Libro', null=True) 

    Natürlich kannst du es nicht wegen der kreisförmigen Abhängigkeit machen. Also kommentiere den Fremdschlüssel im Libro Modell:

     class Libro(models.Model): name = models.CharField(max_length=20) # perfile = models.ForeignKey('perfiles.Perfile', null=True) 

    Und führen Sie zwei Migrationen:

     python manage.py makemigrations libros python manage.py makemigrations perfiles 

    Danach perfile den perfile Fremdschlüssel im Libro Modell und führen eine weitere Migration aus:

     python manage.py makemigrations libros 

    Für diejenigen, die CircularDependencyError getroffen haben – nicht unbedingt mit ForeignKey – Es ist gut, in die Zyklen zu gehen

    Python manage.py makemigrations app_name; Python manage.py migrieren

    Für jede Anwendung in Ihrem Projekt, eins nach dem anderen.

    Das hat für django 1.10 gearbeitet

    Python ist die beste Programmiersprache der Welt.