12345678910111213141516171819 |
- from . import PostingEndpoint, PostingMiddleware
- class MentionsMiddleware(PostingMiddleware):
- def post_save(self, serializer):
- existing_mentions = []
- if self.mode == PostingEndpoint.EDIT:
- existing_mentions = self.get_existing_mentions()
- new_mentions = []
- for user in self.post.parsing_result["mentions"]:
- if user.pk not in existing_mentions:
- new_mentions.append(user)
- if new_mentions:
- self.post.mentions.add(*new_mentions)
- def get_existing_mentions(self):
- return [u["id"] for u in self.post.mentions.values("id").iterator()]
|