Как показать количество непрочитанных уведомлений в Django - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть уведомления, созданные из getstream в Django, но я не знаю, как показать количество непрочитанных уведомлений. Есть ли какой-нибудь простой способ сделать это?

В документации я вижу упоминание об этом, но не как это сделать. Может быть, я упустил это из виду.

Мой вид уведомлений выглядит следующим образом:

@login_required
def notification_feed(request):
    enricher = Enrich(request.user)
    context = {}
    feed = feed_manager.get_notification_feed(request.user.id)
    activities = feed.get(limit=25, mark_seen='all')['results']
    activities = enricher.enrich_aggregated_activities(activities)

    return render(request, 'auth/notification_feed.html', {'activities': activities})

Мне нужно создать общее количество непрочитанных уведомлений, как на Facebook.

Редактировать: Iнашел новую информацию о непрочитанном и невидимом количестве в документации getstream, но ничего о том, как это показать. Я пытаюсь показать, используя {{activity.unread}} или {{activity.unseen}} и что-то вроде {% для активности в действиях%}, а затем {{activity.unseen}}, но ничего не показывает эту информацию.

1 Ответ

0 голосов
/ 12 ноября 2019

Из потоковых документов:

На верхнем уровне ответа JSON поле «результаты» содержит массив групп действий, а также общее число «невидимых» и «непрочитанных» и другие метаданные. о корме. В массиве результатов каждая группа действий содержит дополнительные поля состояния, которые указывают, что группа видна / прочитана.

Вы должны передать весь ответ в контекст шаблона, чтобы вы могли использовать unread_countи unseen_count поля.

т.е.

@login_required
def notification_feed(request):
    enricher = Enrich(request.user)
    context = {}
    feed = feed_manager.get_notification_feed(request.user.id)
    response = feed.get(limit=25, mark_seen='all')
    activities = response['results']
    activities = enricher.enrich_aggregated_activities(activities)
    context = {
        'activities': activities,
        'response': response
    }
    return render(request, 'auth/notification_feed.html', context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...