Переправлю своё сообщение, что-то я там совсем в другую плоскость уехал. Итак….
Вот что у меня есть:
class Translation1(models.Model):
code = models.IntegerField(primary_key=True)
description = models.CharField()
class Translation2(models.Model):
code = models.IntegerField(primary_key=True)
description = models.CharField()
class TranslationN(models.Model):
code = models.IntegerField(primary_key=True)
description = models.CharField()
class MainDB (models.Model):
tr1_code = models.IntegerField()
tr2_code = models.IntegerField()
tr3_code = models.IntegerField()
name = models.CharField()
model = models.CharField ()
some_field1 = models.CharField ()
some_fieldN = models.CharField ()
структура БД у меня примерно такая.
теперь вопрос - как наименее бескровно вывести инфу из MainDB (взять оттуда только поля name и model и все коды - только вместо кодов - их расшифровки)
для выборки только нужных полей из MainDB я сделал свой менеджер, и он работает. А вот как в один queryset запихнуть расшифровку из других моделей - придумать не могу. Пока попытался так
class my_MainDB (MainDB):
tr1_value = models.ForeignKey (Translation1)
#views.py
result = my_MainDB.gos_req.select_related() #gos_req - мой менеджер
но понятно, что джанга не поймёт, какое поле из MainDB синхронизировать с полем из Translation1
пробовал подсовывать db_colunm в tr_value - не помогло. На выходе - ноль.
в оригинале SQL запрос выглядел так
SELECT A1,A2,A20,A18,A45,A4,A5,A41,A36,A38,K1,K2,A27,A25,FED.RA,FED.N1,EC.RA,EC.N1,A34 FROM C12B,RKA,C014P FED,C014P EC WHERE A34='02100' AND A38=K1 AND A41=FED.RA AND A36=EC.RA ORDER BY A1
c12b - это как раз MainDB, а RKA, C014P, FED,… - это как раз таблицы с кодами и их расшифровками.