Уведомление в django rest API

Я хочу сделать в django уведомление, что при добавлении новой записи в базу данных админом я делаю все в Django Rest API

Это зависит от того, как вы хотите, чтобы с администратором связывались. Я собираюсь предположить, что у вас уже есть модель, view и serializer (предпочтительно ModelSerializer) внутри вашего Django приложения. Если нет, посмотрите ссылки, которые я вам отправил.

На данный момент я думаю о том, чтобы связаться с администратором системы двумя способами: 1.) отправив письмо администратору системы или 2.) создав объект типа "Notification" (или назвав его как угодно), который админ сможет просматривать из панели.

Для первого варианта вы можете просто переопределить один из методов сериализатора REST (предпочтительно create()). create() - это фактический метод, который вызывается после того, как вы укажете поля для вашей модели перед отправкой POST-запроса для ее создания. Вы можете добавить некоторый метод send_email() внутри вашего create(), содержащий некоторые проверяемые данные. send_email() также упоминается в документации REST (именно в разделе Serializing), но я не уверен, что это сильно поможет. Вы можете проверить его правильный синтаксис, просто погуглив.

Вторым способом будет просто создание новой модели (под названием Notification? возможно) и добавление новой записи в базу данных, каждый раз, когда делается запрос на создание объекта (так что вам в основном все еще нужно будет переопределить метод create() внутри вашего сериализатора). Вы также можете добавить поле (булево? возможно) под названием isRead, которое администратор может отметить как true/false. Если будут найдены уведомления с isRead == false, они появятся на странице администратора.

def create_profile(sender, instance, created, **kwargs):
    if created:
        instance.rooms.room_bool = instance.room_bool
        instance.rooms.save()
        token = '5419456477:AAHuyagslasglfsE9O-90vgiDHVTiV2Kmq8JWXiXFRNw'
        URL = 'https://api.telegram.org/bot' + token + '/sendMessage'
        for chat_id in ADMINS:
            try:
                data = {'chat_id': chat_id, 'text': "Забронирован один номер через Ресепшен\n\n"
                                                    "Посмотрите по ссылке http://127.0.0.1:8000/admin/reg_admin/registration/\n\n"
                                                    "Нажмите /start чтобы вывести меню администратора"}
                requests.post(URL, data=data)
            except Exception:
                pass

используя signals.py, я отправил боту сообщение через json

Вернуться на верх