Django中的一个应用程序的外键

我想知道是否有可能在Django中的models.py文件中定义一个外键,这是另一个应用程序中表的引用?

换句话说,我有两个应用程序,称为cf和configuration文件,并在cf / models.py我有(其中包括):

class Movie(models.Model): title = models.CharField(max_length=255) 

并在configuration文件/ models.py我想要:

 class MovieProperty(models.Model): movie = models.ForeignKey(Movie) 

但是我无法让它工作。 我试过了:

  movie = models.ForeignKey(cf.Movie) 

我试过在models.py的开头导入cf.Movie,但是我总是得到错误,比如:

 NameError: name 'User' is not defined 

我试图以这种方式将两个应用程序绑定在一起,或者我刚刚得到的语法错误?

根据文档,你的第二次尝试应该工作:

要引用另一个应用程序中定义的模型,您必须明确指定应用程序标签。 例如,如果上面的Manufacturer模型是在另一个称为production的应用程序中定义的,则需要使用:

 class Car(models.Model): manufacturer = models.ForeignKey('production.Manufacturer') 

你试过把它放进引号?

也可以通过课程本身:

 from django.db import models from production import models as production_models class Car(models.Model): manufacturer = models.ForeignKey(production_models.Manufacturer) 

好 – 我明白了。 你可以做到这一点,你只需要使用正确的import语法。 正确的语法是:

 from prototype.cf.models import Movie 

我的错误是没有指定该行的.models部分。 D'哦!