Django: prefetch_related из разных бд без связи
Рассмотрите следующие модели:
# in database "pizzas"
class Pizza(models.Model):
name = models.CharField()
# in database "toppings"
class Topping(models.Model):
metadata = models.JSONField()
В таблице pizzas в базе данных pizzas у меня есть
id | name
1 | BBQ Meat Lover
2 | Pepperoni
В таблице топпингов в базе данных топпингов у меня есть
id | metadata
1 | {"pizza":{"id": 1}}
2 | {"pizza":{"id": 2}}
Теперь я понял, как я могу переместить идентификатор пиццы на уровень выше в наборе запросов, сделав:
Topping.objects.annotate(pizza_id=KeyTextTransform("id", "pizza"))
Теперь как я смогу выбрать связанные пиццы, используя pizza.id ?
В идеале, я хотел бы иметь возможность доступа к набору запросов следующим образом:
for topping in queryset:
print(topping.pizza.name)