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'哦!