В настоящее время я работаю в социальной сети с Django.
Я работаю над функцией "тегов", которая отправляет уведомления пользователям, когда они отмечены в сообщении.
Я создал сигнал post_save следующим образом:
def post_tagged(*args, **kwargs):
instance = kwargs['instance']
message = f'{instance.user.slug} mentioned you in a post.'
#Find in the content of the post if there are any "@username", if yes create a Notification object
for user in MyUser.objects.all():
if instance.content.find(f'@{user.slug}') != -1 and instance.user != user:
Notification.objects.create(user = user, message = message)
models.signals.post_save.connect(post_tagged, sender = Post)
Это работает нормально, когда я создаю новое сообщение, но оно также срабатывает при удалении сообщения. Это код в представлении для удаления сообщения:
if 'deletePost' in request.POST:
postId = request.POST.get('deletePost', None)
post = Post.objects.get(pk = postId)
if request.user == post.user:
post.delete()
message = 'Success'
else:
message = 'Fail'
jsonData = {"message": message,}
return HttpResponse(json.dumps(jsonData))
Также, если это поможет, вы можете видеть, что я использую ajax для отправки запроса в представление. И удаление тоже работает нормально. Единственная проблема заключается в том, что он также создает уведомление для пользователей с тегами, когда я удаляю сообщение.
У кого-нибудь есть такая же проблема? Я ценю любую помощь. Спасибо