1

관리자에게 사용자에게 알림을 추가하면 페이스 북과 같이 사용자의 홈 페이지에 표시하고 싶거나 django에서 활동 피드를 사용할 수 있다는 알림을 받았습니다.장고 비동기 보내기 알림

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 

나는 새로운 notificiation하지만 사용자가 페이지를 새로 고침 할 때 목록 알림을 추가 할 수 있어요. 간단히 말해서 나는이 시스템과 같은 페이스 북처럼 비동기를하고 싶다.

+1

는 메시지 프레임 워크 https://docs.djangoproject.com/en/1.11/ref/contrib/messages/를 조회하고, 행 자바 스크립트/아약스 요청을 통해해야 할 페이스 북을 좋아하거나 사용자가 페이지를 새로 고칠 때까지 기다리십시오. –

답변

1

Channels이이 용도에 가장 적합한 솔루션입니다. 웹 소켓과 진정한 비동기이며 프론트 엔드와 백엔드 동기화를 실시간으로 연결합니다.

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

답변 해 주셔서 감사합니다. – jackquin