Обратная связь Django с select_related

У меня есть 4 модели, и я хочу получить соединение между ними

ModelA

class ModelA(models.Model):
    product = models.ForeignKey(ModelB)
    group = models.ForeignKey(Group)

ModelB

class ModelB(models.Model):
    title = models.CharField()

ModelC

class ModelC(models.Model):
    product = models.ForeignKey(ModelB)
    group = models.ForeignKey(ModelD)

ModelD

class ModelD(models.Model):
    name = models.CharField()

Теперь я хочу, чтобы все мои объекты ModelA были соединены с ModelB , ModelC и ModelD В sql это довольно просто сделать. Просто сделайте соединения между таблицами. С Django ORM я застрял, потому что я могу делать только прямые отношения.

Я делаю это

ModelA.objects.all().select_related(product)

Но я не могу присоединиться к ModelC Я уже прочитал эту статью , но я не хочу повторять свой большой список, чтобы сделать простую вещь! И я хочу попасть в базу данных только один раз.

Я использую последнюю версию Django и надеюсь, что уже есть решение, о котором я не знаю.

Спасибо.

8
задан balsagoth 11 November 2011 в 16:19
поделиться