Как запросить существование связанных объектов, последовательных во времени?
Моя модель блога имеет два типа комментариев, синие и красные. Я хотел бы найти все блоги, в которых есть сообщения синего цвета, за которыми непосредственно следуют сообщения красного цвета. Здесь под "следуют" подразумевается поле временной метки "created_at".
Как я могу отфильтровать мои блоги по этому свойству?
class Comment(Model):
color = Charfield(max_length=100)
created_at = DateTimeField()
blog = ForeignKey(Blog, related_name="comments")
class Blog(Model):
...
Моя попытка такова:
blue_comments = Comment.objects.filter(blog=OuterRef("pk"), color="blue")
red_comments = Comment.objects.filter(blog=OuterRef("pk"), color="red")
blogs = Blog.objects.filter(Exists(blue_comments), Exists(red_comments)).all()
Я не знаю, как фильтровать для условия, что поля "created_at" должны быть последовательными.