DjangoのモデルでHaving句を使う
ユーザと趣味モデルを定義して、趣味が3つ以上ある既婚者を取得する例。
from django.db import models class Hobby(models.Model): """ 趣味モデル """ name = models.CharField(max_length=255, null=False, blank=False) class User(models.Model): """ ユーザモデル """ name = models.CharField(max_length=255, null=False, blank=False) is_married = models.BooleanField(default=False) hobbies = models.ManyToManyField( to=Hobby, )
# 既婚者で趣味が3つ以上あるユーザ取得 User.objects.annotate(hobby_count=Count('hobbies')).filter(is_married=True, hobby_count__gte=3)