Ich habe eine Anwendung notes
und Name Modell definiert alsDjango Import: kann nicht Namen importieren
Noten/models.py
from shorturls.models import ShortUrl
class Note(models.Model):
# columns here
def __str___(self):
return self.title
@receiver(post_save, sender=Note)
def post_save_note_receiver(sender, instance, created, *args, **kwargs):
if instance and created:
ShortUrl.objects.create(note=instance)
und eine andere App shorturls
mit Modell für jeden Datensatz kurze URL zu speichern,
Shorturls/models.py
from notes.models import Note
class ShortUrl(models.Model):
note = models.OneToOneField(Note, on_delete=models.CASCADE, blank=True)
short_key = models.CharField()
def __str__(self):
return self.short_key
@receiver(pre_save, sender=ShortUrl)
def pre_save_short_url_receiver(sender, instance, *args, **kwargs):
instance.short_key = unique_short_key_generator(instance)
Aber auf python manage.py makemigrations
, es gibt Fehler als
File "path_to_app/shorturls/models.py", line 7, in <module>
from notes.models import Note
ImportError: cannot import name 'Note'
aktualisierte Frage und entfernte diese Zeile. Das wurde versehentlich hinzugefügt. –
Es scheint ein zirkulärer Import zu sein, weil ich in 'Note' 'ShortUrl' importiere, um' create' von 'ShortNote' auf' post_save' zu nennen, da ich jedes Mal, wenn eine neue Note erstellt wird, einen Record für 'ShortUrl' erstellen muss. Und in 'ShortUrl' importiere ich' Note', um 'OneToOneField' zuzuweisen. Wenn dies der Grund für den kreisförmigen Import ist, wie es in diesem Zustand gelöst werden –