Сравнение и группировка с помощью Django ORM

У меня есть 8 предметов из двух разных моделей. Скажи, фрукты и цвет

Я хочу фильтровать и группировать фрукты по их полезным свойствам. Например, апельсины и виноград можно сгруппировать вместе, потому что они имеют схожие преимущества, т.е. "богаты витамином С"

Вот мой код:

models.py

class Fruit(models.Model):
    name = models.CharField(max_length=40, blank=True, null=True)
    colour = models.CharField(max_length=40, blank=True, null=True)
    benefits = models.JSONField(default=dict)

class Benefit(models.Model):
    health_benefit = models.CharField(max_length=240, blank=True, null=True)

Я попробовал следующее:

all_benefits = Benefit.objects.values_list('health_benefit')
Fruit.objects.filter(benefits__in=all_benefits)

Не уверен, что это правильный способ запроса. Заранее спасибо.

Вернуться на верх