Ich frage mich, ob es möglich ist, einen Fremdschlüssel in einer Datei models.py in Django zu definieren, der auf eine Tabelle in einer anderen App verweist.
Mit anderen Worten, ich habe zwei Apps, cf und Profile, und in cf / models.py habe ich (unter anderem):
class Movie(models.Model):
title = models.CharField(max_length=255)
und in profile / models.py möchte ich haben:
class MovieProperty(models.Model):
movie = models.ForeignKey(Movie)
Aber ich kann es nicht zum Laufen bringen. Ich habe es versucht:
movie = models.ForeignKey(cf.Movie)
und ich habe versucht, cf.Movie am Anfang von models.py zu importieren, aber ich erhalte immer Fehler, wie zum Beispiel:
NameError: name 'User' is not defined
Verstoße ich gegen die Regeln, indem ich versuche, zwei Apps auf diese Weise miteinander zu verbinden, oder habe ich gerade die falsche Syntax?
Es ist auch möglich, die Klasse selbst zu bestehen:
quelle
OK - ich habe es herausgefunden. Sie können es tun, Sie müssen nur die richtige
import
Syntax verwenden. Die richtige Syntax lautet:Mein Fehler war, den
.models
Teil dieser Zeile nicht anzugeben . D'oh!quelle