Джанго: Получить аннотированные значения - PullRequest
0 голосов
/ 28 мая 2019
class A(models.Model):
    a = models.CharField(max_length=30)

class B(models.Model):
    uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    a_ref = models.ForeignKey(A, on_delete=models.CASCADE, null=True, related_name='sd')
    b_name = models.CharField(max_length=30, null=False)
    b_value = models.CharField(max_length=30, null=False)

Теперь я хочу применить фильтры к A и в наборе запросов добавить значение a_ref, когда b_name = "first"

filter_dict = {key:value}

fallback_filter = Q()
searched_data = A.objects.filter(fallback_filter)
searched_data = annotate(b_searched_value=FilteredRelation('sd', condition=Q(sd__b_name="first")))

for data in searched_data:
    print(data)

Теперь в этих данных я не получаю никаких ссылок наb_searched_value.Я хочу напрямую получить значение b_value в самих данных и не делать еще один вызов БД с помощью 'a_ref'.

...