Мне интересно, можно ли определить внешний ключ в файле models.py в Django, который является ссылкой на таблицу в другом приложении?
Другими словами, у меня есть два приложения cf и profiles, а в 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.Movie в начале models.py, но всегда получаю ошибки, например:
NameError: name 'User' is not defined
Нарушаю ли я правила, пытаясь таким образом связать два приложения вместе, или я просто ошибся синтаксисом?
Также можно передать сам класс:
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
часть этой строки. Ооо!источник