وincuna-الإخطار هو التطبيق جانغو لدمج دعم الإخطار إلى التطبيق الخاص بك هو بسيطة عملية من ثلاث خطوات.
- إنشاء أنواع نظركم
- إنشاء قوالب نظركم
- إرسال إعلامات
خلق أنواع إشعار
تحتاج إلى استدعاء 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؛ مواطنه 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 إخطار استخدام ل.
قوالب التنبيه
هناك أربعة قوالب مختلفة يمكن أن تكون مكتوبة لالمحتوى الفعلي للإشعارات:
- short.txt هو الإصدار النص فقط قصيرة جدا من الإشعار (مناسبة لأشياء مثل موضوعات البريد الإلكتروني)
- full.txt هو الإصدار النص فقط أطول من الإشعار (مناسبة لأشياء مثل هيئات البريد الإلكتروني)
- notice.html هو، إصدار HTML قصيرة من الإشعار، عرض في قائمة إشعار المستخدم على الموقع
- full.html هو، إصدار HTML طويل من الإشعار (لا تستخدم حاليا لأي شيء)
كل من هذه ينبغي أن توضع في دليل على مسار قالب يسمى الإخطار /
على سبيل المثال، قد يحتوي الإخطار / friends_invite / notice.html:
{٪ حمولة I18N٪} {٪ رابط الدعوات كما invitation_page٪} {٪ رابط profile_detail اسم المستخدم = invitation.from_user.username كما user_url٪}
{٪ blocktrans مع invitation.from_user كما invitation_from_user٪} <أ href = ل"{{user_url}}"> {{invitation_from_user}} وقد طلبت لإضافة لك صديق (انظر <أ href = ل"{{invitation_page }} "> دعوات ) {٪ endblocktrans٪}
والإخطار / friends_full.txt قد تحتوي على:
{٪ حمولة I18N٪} {٪ رابط الدعوات كما 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)
المعلمات هي:
- للمستخدمين هو iterable من كائنات المستخدم لإرسال إشعار إلى.
- التسمية هي التسمية التي تستخدم في الخطوة السابقة لتحديد نوع إشعار.
- extra_content هو قاموس لإضافة إدخالات سياق مخصصة إلى قالب المستخدمة لتقديم لإشعار. هذا هو اختياري.
- on_site هو العلم منطقية لتحديد ما إذا كان يتم إنشاء كائن لاحظ في قاعدة البيانات.
send_now مقابل طابور مقابل الإرسال
يتيح كسر أول ما نزل كل ما يفعل.
ارسل الان
هذه هي دعوة حجب من شأنها أن تحقق كل مستخدم لelgibility من الإشعار والواقع peform عملية الإرسال.
طابور
هذه هي دعوة غير مؤمن من شأنها أن قائمة الانتظار الدعوة إلى send_now ليتم تنفيذها في وقت لاحق. في وقت لاحق لتنفيذ هذه الدعوة تحتاج إلى استخدام الأمر إدارة emit_notices.
إرسال
وكيل حول send_now والانتظار. فإنه يحصل على سلوكها من إعداد عمومي اسمه NOTIFICATION_QUEUE_ALL. افتراضيا هو خطأ. ويهدف هذا الإعداد للمساعدة في السيطرة ما إذا كنت تريد الوقوف في طوابير أي دعوة لإرسال.
إرسال يقبل أيضا الآن والوقوف في طوابير الحجج الكلمات الرئيسية. افتراضيا تم تعيين كل خيار إلى خطأ لتكريم الإعداد العمومي الذي هو خطأ. هذه تمكنك من تجاوز على أساس لكل مكالمة ما إذا كان ينبغي استدعاء send_now أو الانتظار.
دعم الإخطار اختياري
في حال كنت ترغب في استخدام الإخطار في التطبيق قابلة لإعادة الاستخدام الخاص بك، يمكنك لف استيراد الإخطار في جملة شرطية ان الاختبارات إذا كان مثبتا قبل إرسال إشعار. ونتيجة لذلك التطبيق الخاص بك أو مشروع لا يزال يعمل دون إخطار.
على سبيل المثال:
من django.conf إعدادات استيراد
إذا "الإخطار" في settings.INSTALLED_APPS:
& nbsp؛ من نماذج استيراد الإخطار على النحو الإخطار
آخر:
على & nbsp؛ إخطار = بلا
وبعد ذلك، في وقت لاحق:
إذا الإخطار:
على & nbsp؛ notification.send ([to_user]، "friends_invite"، {"from_user": from_user})
المتطلبات:
بيثون
جانغو
لم يتم العثور على التعليقات