Je me demande s'il est possible de définir une clé étrangère dans un fichier models.py dans Django qui est une référence à une table dans une autre application?
En d'autres termes, j'ai deux applications, appelées cf et profiles, et dans cf / models.py j'ai (entre autres):
class Movie(models.Model):
title = models.CharField(max_length=255)
et dans profiles / models.py je veux avoir:
class MovieProperty(models.Model):
movie = models.ForeignKey(Movie)
Mais je ne peux pas le faire fonctionner. J'ai essayé:
movie = models.ForeignKey(cf.Movie)
et j'ai essayé d'importer cf.Movie au début de models.py, mais j'obtiens toujours des erreurs, telles que:
NameError: name 'User' is not defined
Est-ce que j'enfreins les règles en essayant de lier deux applications ensemble de cette manière, ou ai-je juste une mauvaise syntaxe?
Il est également possible de passer la classe elle-même:
la source
OK - je l'ai compris. Vous pouvez le faire, il vous suffit d'utiliser la bonne
import
syntaxe. La syntaxe correcte est:Mon erreur n'a pas été de spécifier la
.models
partie de cette ligne. Oh!la source