Консультируй несколько моделей Джанго

У меня есть эти модели:

class TablaA(models.Model):
    estado = models.BooleanField()
    # mas campos...

class TablaB(models.Model):
    tabla_a = models.ForeignKey(TablaA)
    estado = models.BooleanField()
    # mas campos...

class TablaC(models.Model):
    tabla_a = models.ForeignKey(TablaA)
    # mas campos...

То, в чем я нуждаюсь, состоит в том, чтобы иметь данные TablaC когда поля estado TablaA и TablaB будьте False.

Как возможно делать это?

1
задан 17.01.2017, 03:15
0 ответов

ps ты мог бы делать это так.

from yourapp import models
a = models.TablaA
b = models.TablaB
c = models.TablaC
if a.estado == False and b.estado == False:
  return c.tabla_a

Ты можешь возвращаться c.tabla_a или cualquiero другая информация, которая находится в таблице.

Ты комментируешь мне, как он ты идет

привет

1
ответ дан 03.12.2019, 17:39
  • 1
    Что-то похожее habí в факт в начало, однако он искал уменьшать консультации. –  17.01.2017, 07:50

Я это решил используя select_related() и FOO_set.

data = TablaB.objects.filter(tabla_a__Estado=False)

И в сдержись в момент обращения:

{% for d in data %}
    data.tabla_c.tablaa_set.all
    {{ data.foo.bar }}
{% endfor %}

Принимая во внимание, что в TablaB есть также ссылка на TablaC.

Однако сейчас, в другой секции приложения, я нуждаюсь в том, чтобы сделать это в единственной консультации для в сдержись только обращаться и уже не делать добавочную консультацию. Еще мне не удается сделать это.

1
ответ дан 03.12.2019, 17:39
  • 1
    Привет @Christian. ¡ Спасибо за имение ответа! Serí в гениальный, если ты мог помещать немного má s детали, cuestió n, которого он он был ú til в кого-то, у кого есть твоя собственная проблема. Я представляю себе, что có печатать; я говорю конец aportarí в превосходный пример. –  17.01.2017, 10:24
  • 2
    Как и @Mariano я предлагаю расширять немного больше ответ –  17.01.2017, 16:20

Теги

Похожие вопросы