Объединение и группировка запросов в Django
Мне трудно найти наиболее эффективный способ запросить следующие сценарии, и я буду признателен за любую помощь
class Company(models.Model):
name = models.CharField(max_length=100)
class DatapointModel(models.Model):
company = models.ForeignKey(Company, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
value = models.FloatField()
Теперь мне нужны все компании, у которых есть два действительных правила DatapointModel, например, компании с обоими
datapoint name='country' with value='USA'
и
datapoint name='building_color' with value='blue'
Результаты Я ищу: название компании, где оба правила точки данных удовлетворены. Это было бы просто, если бы я хранил и страну, и цвет_здания в объекте Company, но поскольку у меня так много точек данных, я не хочу структурировать свою модель таким образом, и я немного застрял на том, как запросить ее с помощью django
Если я неправильно понял ваш вопрос, ваши фильтры будут просто:
Company.objets.filter(
datapointmodel__name="building_color",
datapointmodel___value="blue"
)
Вероятно, вам нужна некоторая логика, чтобы заставить вашу пару имя/значение работать разумным образом.