def follow(user, obj): """ Пользователь начинает следить за действиями объекта obj """ follower, created = Follower.objects.get_or_create( user=user, content_type=ContentType.objects.get_for_model(obj), object_id=obj.pk ) if created: action_signal.send(sender=user, verb=_("started to follow"), obj=obj) return follower
def comment_posted_handler(sender, **kwargs): """ Обработчик """ user = kwargs.pop('request').user comment = kwargs.pop('comment') # Найти объект, к которому оставлен комментарий ct = ContentType.objects.get_for_id(comment.content_type_id) snippet = ct.get_object_for_this_type(pk=comment.content_object.pk) action_signal.send(user, verb=_('commented on'), obj=snippet)
def post(self, request): """ POST-запрос и добавление сниппета """ form = AddSnippetForm(self.request.POST, author=self.request.user) if form.is_valid(): # Сохранить сниппет form.save() # Добавить упоминание в ленту action_signal.send(request.user, verb=_("created snippet"), obj=form.instance) return self.render_to_response(self.get_context_data(form=form))
def unfollow(user, obj): """ Пользователь user перестает следить за измененияи """ Follower.objects.filter(user=user, content_type=ContentType.objects.get_for_model(obj), object_id=obj.pk).delete() action_signal.send(sender=user, verb=_("stopped following"), obj=obj)