Как сделать в операции в Джанго - PullRequest
0 голосов
/ 19 марта 2019
class ModelA(models.Model):
    f = models.CharField(max_length=50)

class ModelB(models.Model):
    a = ForeignKey(ModelA)
    b = models.CharField(max_length=50)

Я хочу получить f в модели A и знаю b.Как я могу сделать это с помощью django orm?

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Это то, что вы ищете?

ModelA.objects.filter(b=value_matching_b).values('a__f').all()
0 голосов
/ 19 марта 2019

Вы можете использовать один из следующих запросов:

a_models = ModelA.objects.filter(model_b__b=known_b_value)
for a in a_models:
    print(a.f)

b_models = ModelB.objects.filter(b=known_b_value).select_related('a')
for b in b_models:
    print(b.a.f)

select_related во втором запросе не является строго обязательным;он используется только для получения значений f в первом запросе, а не в одном дополнительном запросе на элемент цикла.

...