1

Ich habe eine Benachrichtigung für einen Benutzer, wenn der Admin Benachrichtigung an den Benutzer ich möchte auf der Startseite des Benutzers wie ein Facebook-Likes oder Aktivität Feed anzeigen ist es möglich mit Django?Django Async Senden Benachrichtigungen

models.py

class Notification(BaseModel): 
    created_user = models.ForeignKey(User) 
    title = models.CharField(max_length=225) 
    description = models.TextField(max_length=600) 
    is_read = models.BooleanField(default=False) 
    priority = models.CharField(max_length=20, choices=NOTIFICATION_STATUS, default=LOW) 

    def __str__(self): 
     return self.title 

ich bin der Lage, die Auflistung ein neues notificiation aber die Benachrichtigungen hinzuzufügen, wenn der Benutzer die Seite aktualisieren. Ich möchte einfach nur dieses asynchrone wie facebook ähnliche System tun.

+1

Nachschlag den Nachrichten Rahmen https://docs.djangoproject.com/en/1.11/ref/contrib/messages/, und Mache es wie Facebook, das du über JavaScript/Ajax-Anfragen tun musst, oder warte, bis der Benutzer die Seite aktualisiert hat. –

Antwort

1

Channels ist die beste Lösung für diesen Anwendungsfall. Es ist websocket und wirklich async und verbindet sich mit Ihrem Frontend und Backend-Sync in Echtzeit.

base.html

socket = new WebSocket("ws://" + window.location.host + "/notification/"); 
socket.onmessage = function(e) { 
    notificationElement.innerHtml = e.data 
} 

models.py

@receiver(post_save, sender=Notification) 
def notification_handler(sender, instance, **kwargs): 
    Group("notification").send({ 
     "text": "This is the new notification", 
    }) 
+0

danke für deine antwort werde ich das versuchen. – jackquin

Verwandte Themen