востоковедения АН-уведомление является приложение Django, чтобы интегрировать поддержку уведомлений в вашем приложении является простой трехступенчатый процесс.
- Создавать свои типы уведомления
- Создавать свои шаблоны уведомления
- Отправлять уведомления
Создание Виды Уведомление
Вы должны вызвать create_notice_type (этикетка, дисплей, описание) один раз, чтобы создать типы уведомления для вашего приложения в базе данных. метка просто внутренняя ShortName, который будет использоваться для данного типа, дисплей является то, что пользователь будет видеть как имя типа уведомлений и описание краткое описание.
Например:
notification.create_notice_type ("friends_invite", "Приглашение поступившем в редакцию", "Вы получили приглашение")
Один хороший способ сделать это автоматически создание типа уведомление в management.py файл для вашего приложения, прикрепленной к сигналом SyncDB. Вот пример:
от django.conf параметров импорта
от django.utils.translation ugettext_noop импорта, как _
если "уведомления" в settings.INSTALLED_APPS:
& NBSP; от моделей импортных уведомление, уведомление
& NBSP; Def create_notice_types (приложение, created_models, многословие, ** kwargs):
& NBSP; notification.create_notice_type ("friends_invite", _ ("Приглашение поступившем в редакцию") _ ("Вы получили приглашение"))
& NBSP; notification.create_notice_type ("friends_accept", _ ("Принятие поступившем в редакцию") _ ("приглашение вы послали была принята"))
& NBSP; signals.post_syncdb.connect (create_notice_types, отправитель = уведомление)
другой:
& NBSP; печать "Пропуск создание NoticeTypes, как уведомление приложение не найдено"
Обратите внимание, что код внутри условного пункта поэтому, если уведомление не установлен, ваше приложение будет идти в любом случае.
Обратите внимание, что дисплей и описание аргументы отмечены для перевода с помощью ugettext_noop. Это позволит вам использовать команду управления makemessages Джанго и возможности i18n использовать уведомление по.
шаблоны Notification
Есть четыре различных шаблонов, которые могут быть написаны для фактического содержания уведомлений:
- Short.txt очень короткий, текстовая версия уведомления (подходит для вещей, например, почтовых предметов)
- Full.txt является больше, текстовая версия уведомления (подходит для вещей, например, почтовых органов)
- Notice.html короткий, HTML версия уведомления, в списке отображаются уведомления пользователя на сайте
- Full.html длинный, HTML версия уведомления (в настоящее время не используется ни для чего)
Каждый из них должен быть помещен в каталог на пути шаблона под названием уведомление /
Например, уведомление / friends_invite / notice.html может содержать:
{% Нагрузки i18n%} {% URL приглашения как invitation_page%} {% гиперссылка profile_detail имя пользователя = invitation.from_user.username в user_url%}
{% Blocktrans с invitation.from_user как invitation_from_user%} <а HREF = "{{}} user_url"> {{}} invitation_from_user а> с просьбой добавить вас в друзья (см
и уведомление / friends_full.txt может содержать:
{% Нагрузки i18n%} {% URL приглашения как invitation_page%} {% blocktrans с invitation.from_user как invitation_from_user%} {{}} invitation_from_user просил, чтобы добавить вас в друзья. Вы можете принять их приглашение в:
HTTP: // {{}} current_site {{}} invitation_page
{%}% Endblocktrans
В контекстные переменные предусмотрены при отправке уведомлений.
Отправка уведомления
Есть два способа отправки уведомлений. У нас есть поддержка блокировки и неблокирующего методы отправки уведомлений. Самый простой способ отправить уведомление, например:
notification.send ([to_user], "friends_invite", {"from_user": from_user})
Одна вещь, чтобы отметить, что отправить такое прокси вокруг любой send_now или очереди. Все они имеют ту же сигнатуру:
отправить (пользователи, этикетка, extra_context, on_site)
Параметры:
- Пользователи это итерацию объектов пользователей, чтобы отправить уведомление.
- Этикетка этикетка вы использовали в предыдущем шаге, чтобы определить тип уведомления.
- Extra_content это словарь добавлять пользовательские записи контекста в шаблон, используемый для визуализации с уведомлением. Это не является обязательным.
- On_site является логическим флаг, чтобы определить, является ли объект создан Уведомление в базе данных.
send_now против очереди против отправки
Давайте сначала сломать то, что каждый делает.
Отправить сейчас
Это блокирующий вызов, который будет проверять каждый пользователь для elgibility уведомления и фактически peform посыл.
очередь
Это вызов неблокирующей, что в очередь вызов send_now должна быть выполнена на более позднем этапе. Чтобы впоследствии выполнить вызов, который вы должны использовать команду управления emit_notices.
Отправить
Прокси вокруг send_now и очереди. Он получил свое поведение с глобальной обстановке имени NOTIFICATION_QUEUE_ALL. По умолчанию это значение False. Этот параметр предназначен, чтобы помочь контроль, хотите ли вы, чтобы в очереди любой вызов для отправки.
отправить также принимает в настоящее время и стоять в очереди именованные аргументы. По умолчанию, каждый параметр установлен в значение False, чтобы почтить глобальный параметр, который является ложным. Это позволяет переопределить на один вызов основе, должен ли он назвать send_now или очереди.
Дополнительная поддержка уведомлений
В случае, если вы хотите использовать уведомление в многоразовой приложение, вы можете обернуть импорт уведомления в условном предложении, который проверяет, если он установлен перед отправкой уведомления. В результате ваше приложение или проект еще функционирует без уведомления.
Например:
от django.conf параметров импорта
если "уведомления" в settings.INSTALLED_APPS:
& NBSP; от моделей импортных уведомление, уведомление
другой:
не & NBSP; уведомление = Нет
а затем, спустя:
если уведомление:
& NBSP; notification.send ([to_user], "friends_invite", {"from_user": from_user})
Требования
- Python
- Джанго
Комментарии не найдены