Внешний ключ из одного приложения в другое в Django
мне интересно, можно ли определить внешний ключ в a models.py файл в Django, который является ссылкой на таблицу в другом приложении?
другими словами, у меня есть два приложения, называемые cf и профили, и в cf/models.py у меня есть (среди прочего):
class Movie(models.Model):
title = models.CharField(max_length=255)
и в profiles/models.py я хочу иметь:
class MovieProperty(models.Model):
movie = models.ForeignKey(Movie)
но я не могу заставить его работать. Я пробовал:
movie = models.ForeignKey(cf.Movie)
и я пробовал импортировать cf.Фильм в самом начале models.py, но я всегда получаю ошибки, такие как:
NameError: name 'User' is not defined
я нарушаю правила, пытаясь связать два приложения вместе таким образом, или я просто получил синтаксис неправильно?
3 ответа:
согласно документам, ваша вторая попытка должна работать:
чтобы ссылаться на модели, определенные в другом приложении, необходимо явно указать метку приложения. Например, если модель производителя выше определена в другом приложении под названием production, вам нужно будет использовать:
class Car(models.Model): manufacturer = models.ForeignKey('production.Manufacturer')
вы пробовали поставить его в кавычки?