def do_reply(receiver_id, reply_to_id, sender_id, content): """Reply a message""" if not content.strip(): return "回复内容不能为空!" if len(content) > 500: return "回复内容不能超过500个字符。" # The best way is check in browser using js try: receiver = Profile.objects.get(pk=receiver_id) main_msg = Message.objects.get(pk=reply_to_id) if main_msg.sender_id != sender_id and main_msg.receiver_id != sender_id: return "回复失败" new_message = Message(content=content, date=datetime.datetime.now()) new_message.receiver_id = receiver_id new_message.sender_id = sender_id new_message.reply_to_id = reply_to_id new_message.save() if main_msg.deleted_by_receiver: count = Message.objects.filter(receiver=receiver_id, unread=True, reply_to=Message(reply_to_id)).count() if main_msg.unread: count += 1 receiver.message_count += count receiver.save() main_msg.deleted_by_receiver = False elif main_msg.deleted_by_sender: count = Message.objects.filter(receiver=receiver_id, unread=True, reply_to=Message(reply_to_id)).count() receiver.message_count += count receiver.save() main_msg.deleted_by_sender = False else: receiver.message_count += 1 receiver.save() main_msg.save() Message.objects.filter(reply_to=Message(reply_to_id)).update(deleted_by_receiver=False, deleted_by_sender=False) return "success" except Profile.DoesNotExist: return "收件人不存在!" except Message.DoesNotExist: return "回复的信件不存在!"