Уведомления Django 2.0: Как переписать страницу list.html по умолчанию для уведомлений django
Итак, я недавно импортировал Django-уведомления и успешно добавил уведомление или два. Теперь я хочу посмотреть на страницу списка. В мои URL я добавил конечную точку уведомления path('notifications/', include("notifications.urls")),
и когда я иду на URL, я получаю вывод, который соответствует документации:
Теперь, как мне изменить URL-адрес уведомления. Я пытался создать приложение для уведомлений python manage.py startapp notifications
, но он сказал, что один уже существовал. Я чувствую, что упускаю что-то простое, но я не могу это понять.
0 ответов
Вы не можете создать свое собственное приложение, notifications
потому что у вас уже есть установленное приложение под названием notifications
, Это приложение, которое вы скачали / установили и добавили в your_project/settings.py
под INSTALLED_APPS
Чтобы просмотреть список по умолчанию, вы можете python manage.py runserver
и перейдите к localhost:8000/notifications/' to see the default
list.html`.
Оттуда я рекомендую создать свой собственный список. Посмотрев документацию здесь, вы найдете все методы QuerySet. Вы можете построить представление на основе этих запросов. например your-app/views.py
:
...
# Get all unread notifications for current user.
def unread_notifications(request):
context = {
'notifications': request.user.notifications.unread()
}
return render(request, 'your-app/unread_notifications.html', context)
И ваш your-app/unread_notifications.html
(при условии начальной загрузки):
<ul class="notifications">
{% for notice in notifications %}
<div class="alert alert-block alert-{{ notice.level }}">
<a class="close pull-right" href="{% url 'notifications:mark_as_read' notice.slug %}">
<i class="icon-close"></i>
</a>
<h4>
<i class="icon-mail{% if notice.unread %}-alt{% endif %}"></i>
{{ notice.actor }}
{{ notice.verb }}
{% if notice.target %}
of {{ notice.target }}
{% endif %}
</h4>
<p>{{ notice.timesince }} ago</p>
<p>{{ notice.description|linebreaksbr }}</p>
<div class="notice-actions">
{% for action in notice.data.actions %}
<a class="btn" href="{{ action.href }}">{{ action.title }}</a>
{% endfor %}
</div>
</div>
{% endfor %}
</ul>