Как свернуть несколько строк, отфильтрованных по значению столбца, в одну строку в Django?
У меня есть модель для уведомления:
class Notification(models.Model):
class VerbChoices(models.TextChoices):
COMMENTED = 'commented'
LIKE = 'like'
id = models.CharField(primary_key=True, default=generate_id, max_length=255)
actor = models.ForeignKey(Users, on_delete=models.DO_NOTHING, related_name='notify_actions', null=True)
recipient = models.ForeignKey(Users, on_delete=models.DO_NOTHING, related_name='notifications')
verb = models.CharField(max_length=255, choices=VerbChoices.choices)
read = models.BooleanField(default=False)
target_content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
target_object_id = models.CharField(max_length=255)
target = GenericForeignKey('target_content_type', 'target_object_id')
created_at = models.DateTimeField(auto_now_add=True)
last_updated = models.DateTimeField(auto_now=True)
Я пытаюсь написать запрос, который вернет количество строк с verb
= LIKE, сгруппированных по target_object_id
. Все остальные строки должны быть без группировки по
Любая помощь в этом вопросе будет очень признательна.
Вы можете попробовать этот вариант
Notifications.objects.all().annotate(target_objects=Count('authors'))