Порядок определения моделей Django - PullRequest
7 голосов
/ 19 декабря 2011

Например, у меня есть 2 модели: Модель1 и Модель2 . Model1 имеет поле ForeignKey ( Model2 ).У Model2 есть метод, который возвращает все экземпляры Model1 , которые имеют этот экземпляр Model2 в качестве ForeignKey.

Но это не работает, потому что Model2 определяется после Model1 и ничего не знает о Model2 Как решить эту проблему?

Ответы [ 3 ]

12 голосов
/ 19 декабря 2011

Взгляните на документы Django.Вы можете указать модель, используя строку, чтобы она оценивалась позже: https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey

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

class Manufacturer(models.Model):
    # ...
2 голосов
/ 19 декабря 2011
class Model1(models.Model):
    model2 = models.ForeignKey('Model2')


class Model2(models.Model):
    """Another model"""
1 голос
/ 20 декабря 2011

Вам действительно нужен этот метод, который возвращает все экземпляры model1, которые имеют этот внешний ключ?Вы можете использовать соответствующий менеджер полей из model2 для достижения этой цели.Model2.field_in_model1_set.all ()?

...