django-notification を使用してメールを送信しようとしています。ドキュメントに従って、すべての通知タイプ、テンプレート、および management.py を作成しました。ただし、電子メールを送信しようとすると、次のエラーが表示されたデバッグ ページが表示されます: NoticeType 一致するクエリが存在しません。コードの一部を次に示します。
私のmanagement.pyファイルでは:
from django.conf import settings
from django.db.models import signals
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.NoticeType.create("create_model", _("Model Creation"), _("An entry has been created"))
notification.NoticeType.create("delete_model", _("Model Deletion"), _("An entry has been deleted"))
notification.NoticeType.create("edit_model", _("Model Change"), _("An entry has been changed."))
signals.post_syncdb.connect(create_notice_types, sender=notification)
else:
print "Skipping creation of NoticeTypes as notification app not found"
私のsettings.pyファイルでは:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'departments',
'notification'
)
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'texturamail@gmail.com'
EMAIL_HOST_PASSWORD = #not shown
EMAIL_PORT = 587
NOTIFICATION_BACKENDS = [("texturamail@gmail.com", "notification.backends.email.EmailBackend"),]
#other code....
私のmodels.pyファイルでは:
def model_create_edit(sender, **kwargs):
instance = kwargs.get('instance')
user, first_name, last_name = instance.user, instance.user.first_name, instance.user.last_name
if kwargs['created']:
notification.send([user], "create_email", {'user':user, 'first':first_name, 'last':last_name})
else:
notification.send([user], "edit_email", {'user':user, 'first':first_name, last':last_name})
def model_deletion(sender, **kwargs):
instance = kwargs.get('instance')
user, first_name, last_name = instance.user, instance.user.first_name, instance.user.last_name
notification.send([user], "delete_email", {'user':user, 'first':first_name, 'last':last_name})
コードでページをオーバーロードして申し訳ありません。そうは言っても、私が間違っていることはありますか?何か不足していますか?どんな洞察も大歓迎です!