1

所以,我最近导入了Django-notifications并成功添加了一两个通知。现在我想查看列表页面。在我的网址中,我添加了通知端点path('notifications/', include("notifications.urls")),,当我转到网址时,我得到与文档匹配的输出

现在,我该如何更改通知网址。我试图为通知创建一个应用程序python manage.py startapp notifications,但它说已经存在一个。我觉得我错过了一些简单的东西,但我不能指望它。

4

1 回答 1

1

您无法创建自己的应用程序notifications,因为您已经安装了一个名为 的应用程序notifications。这是您下载/安装并添加到your_project/settings.py下的应用程序INSTALLED_APPS

要查看默认列表,您可以python manage.py runserver, 并导航到localhost:8000/notifications/' to see the defaultlist.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>
于 2018-12-04T22:12:53.840 回答