0

私はdjango-notificationプロジェクトとdjango-messagesプロジェクトを一緒に使用しており、メッセージの受信や返信などのデフォルトの通知タイプを使用して、django-messagesに組み込まれているdjango-notifications統合を利用しています。

ただし、これらのデフォルトのNoticeTypeオブジェクトがどのように作成されているかを判断できません。django-notificationのドキュメントでは、management.pyファイルでpost_syncdbシグナルを使用することを提案しています。これは、私が自分のカスタム通知に対して行っていることです。これらの通知タイプが定義されているコードはどこにも見つかりません。しかし、新しいデータベースでsyncdbを実行するたびに、魔法のように表示されます。

django-messagesアプリによって作成される通知タイプの「label」プロパティは次のとおりです。

  • messages_received
  • messages_sent
  • messages_replied
  • messages_reply_received
  • messages_deleted
  • messages_recovered
4

1 に答える 1

0

django_messages / management.py:

from django.db.models import get_models, signals
from django.conf import settings
from django.utils.translation import ugettext_noop as _

if "notification" in settings.INSTALLED_APPS:
    from notification import models as notification

    def create_notice_types(app, created_models, verbosity, **kwargs):
        notification.create_notice_type("messages_received", _("Message Received"), _("you have received a message"), default=2)
        notification.create_notice_type("messages_sent", _("Message Sent"), _("you have sent a message"), default=1)
        notification.create_notice_type("messages_replied", _("Message Replied"), _("you have replied to a message"), default=1)
        notification.create_notice_type("messages_reply_received", _("Reply Received"), _("you have received a reply to a message"), default=2)
        notification.create_notice_type("messages_deleted", _("Message Deleted"), _("you have deleted a message"), default=1)
        notification.create_notice_type("messages_recovered", _("Message Recovered"), _("you have undeleted a message"), default=1)

    signals.post_syncdb.connect(create_notice_types, sender=notification)
else:
    print "Skipping creation of NoticeTypes as notification app not found"

https://github.com/arneb/django-messages/blob/master/django_messages/management.py

タイプはここで定義され、post_syncdbシグナルにフックされます。

于 2012-08-15T19:49:57.100 に答える