incuna-zgłoszenie jest aplikacja Django zintegrować obsługę powiadomień w Twojej aplikacji jest prosty proces w trzech etapach.
- Tworzyć swoje anonse
- Tworzenie szablonów wypowiedzenia
- Wysyłanie powiadomień
Tworzenie anonse
Musisz zadzwonić create_notice_type (etykiety, monitor, opis) jeden raz, aby stworzyć anonse dla aplikacji w bazie danych. Etykieta jest tylko shortname wewnętrzne, które będą wykorzystywane do rodzaju, wyświetlacz jest to, co użytkownik zobaczy, jak nazwa typu zgłoszenia oraz opis jest krótki opis.
Na przykład:
notification.create_notice_type ("friends_invite", "zaproszenie odebrane", "otrzymaliście zaproszenie")
Dobrym sposobem, aby automatycznie wykonać to stworzenie typu informacja znajduje się w pliku management.py dla Twojej aplikacji, załączonym do sygnału syncdb. Oto przykład:
z django.conf ustawień importowania
z django.utils.translation importu ugettext_noop jako _
jeśli "powiadomienia" w settings.INSTALLED_APPS:
& Nbsp; z modeli importowych Powiadomienie powiadomienia
& Nbsp; def create_notice_types (app, created_models, gadatliwości, ** kwargs):
& Nbsp; notification.create_notice_type ("friends_invite", _ ("Zaproszenie odebrane") _ ("otrzymaniu zaproszenia"))
& Nbsp; notification.create_notice_type ("friends_accept", _ ("Akceptacja odebrane") _ ("Zaproszenie wysłano została przyjęta"))
& Nbsp; signals.post_syncdb.connect (create_notice_types, nadawca = powiadomienia)
jeszcze:
& Nbsp; print "Pomijanie tworzenia NoticeTypes jak Nie znaleziono powiadomienie aplikacja"
Zauważ, że kod jest owinięta w klauzuli warunkowej więc jeśli zgłoszenie nie jest zainstalowany, Twoja aplikacja będzie przebiegać tak.
Należy pamiętać, że wyświetlacz i opis argumenty zaznaczono tłumaczenie za pomocą ugettext_noop. To pozwoli Ci korzystać z polecenia zarządzania makemessages Django i możliwości korzystać z powiadomień w i18n.
Szablony powiadomień
Istnieją cztery różne szablony, które mogą być napisane dla rzeczywistej treści ogłoszeń:
- Short.txt jest bardzo krótki, tylko tekst wersja ogłoszenia (nadaje się do rzeczy, takich jak e-mail) przedmiotów
- Full.txt jest dłuższy, tekstowa wersja ogłoszenia (nadaje się do rzeczy, takich jak organy e-mail)
- Notice.html jest krótki, wersja html ogłoszenia, wyświetlana na liście ogłoszeń użytkownika na stronie internetowej
- Full.html jest długa, wersja html ogłoszenia (obecnie nie używany do niczego)
Każdy z nich powinien znaleźć się w katalogu na ścieżce szablonu o nazwie Zgłoszenie /
Na przykład, powiadomienie / friends_invite / notice.html może zawierać:
{% I18n obciążenia%} {% url jak invitation_page zaproszenia%} {% url profile_detail użytkownik = invitation.from_user.username jak user_url%}
{% blocktrans z invitation.from_user jako invitation_from_user%} {{invitation_from_user}} > zażądał, aby dodać Cię jako przyjaciela (patrz Zaproszenia ) {%}% endblocktrans
i powiadomienie / friends_full.txt może zawierać:
{% I18n obciążenia%} {% url jak invitation_page zaproszenia%} {% blocktrans z invitation.from_user jako invitation_from_user%} {{invitation_from_user}} zażądała, aby dodać Cię jako przyjaciela. Można przyjąć ich zaproszenie na:
http: // {{current_site}} {{invitation_page}}
{%}% Endblocktrans
Zmienne kontekstowe są podczas wysyłania powiadomienia.
Wysyłanie powiadomień
Istnieją dwa różne sposoby wysyłania powiadomień. Mamy wsparcie dla blokowania i non-blocking metody wysyłania powiadomień. Najprostszym sposobem, aby wysłać zgłoszenie, na przykład:
notification.send ([to_user], "friends_invite", {"from_user": from_user})
Należy zwrócić uwagę jest to, że jest proxy wysyła wokół obu send_now lub kolejki. Wszystkie mają ten sam podpis:
send (użytkownicy, etykieta, extra_context, on_site)
Parametry są następujące:
- Użytkowników jest iterable obiektów użytkownika, aby wysłać zgłoszenie.
- Etykieta jest etykieta użyte w poprzednim kroku do określenia typu wypowiedzenia.
- Extra_content to słownik, aby dodawać własne wpisy kontekstowych do szablonu używanego do renderowania do zgłoszenia. Nie jest to obowiązkowe.
- On_site jest logiczna flagi, aby określić, czy obiekt Wskazówka jest tworzony w bazie danych.
send_now vs kolejki vs. send
Pozwala pierwszy rozbić, co każdy ma.
send_now
Jest to wezwanie blokowanie, że sprawdzi każdego użytkownika dla elgibility ogłoszenia i faktycznie peform send.
kolejka
To jest bez blokowania połączeń, które będą w kolejce wezwanie do send_now być wykonane w późniejszym czasie. Aby później wykonywać połączenia należy użyć polecenia zarządzania emit_notices.
wysłać
Pełnomocnik wokół send_now i kolejki. To staje się jego zachowanie od skali światowej o nazwie NOTIFICATION_QUEUE_ALL. Domyślnie jest to fałsz. To ustawienie ma na celu pomóc kontrolę, czy chcesz stać w kolejce na każde wezwanie wysłać.
wyślij akceptuje również teraz i kolejki argumentów słów kluczowych. Domyślnie każda opcja jest ustawiona na False, aby uczcić globalne ustawienie, które jest fałszywe. Pozwala to zastąpić na za połączenie podstawie czy powinien zadzwonić send_now lub kolejkę.
Opcjonalne wsparcie powiadomienia
W przypadku, gdy chcesz, aby korzystać z powiadomień w aplikacji wielokrotnego użytku, można owinąć import notyfikacji w ramach warunkowego klauzuli, która testuje, jeśli jest zainstalowany przed wysłaniem zawiadomienia. W efekcie aplikacja lub projekt nadal funkcjonuje bez powiadomienia.
Na przykład:
z django.conf ustawień importowania
jeśli "powiadomienia" w settings.INSTALLED_APPS:
& Nbsp; z modeli importowych Powiadomienie powiadomienia
jeszcze:
& Nbsp; powiadomienie = Brak
a następnie, później:
w przypadku zgłoszenia:
& Nbsp; notification.send ([to_user], "friends_invite", {"from_user": from_user})
Wymagania :
- Python
- Django
Komentarze nie znaleziono