使用django-admin-notifications在django-admin的index.html中出错

时间:2017-01-24 09:27:31

标签: django django-admin

我正在使用django创建一个新的管理面板,我还使用django-admin-notifications在我的管理面板中显示通知。我不知道为什么它不起作用。

这是我的models.py

from __future__ import unicode_literals

from django.db import models

class MyAlbum(models.Model):
    title = models.CharField(max_length=30)
    photos = models.IntegerField()
    def __unicode__(self):
        return self.title


class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    def __unicode__(self):
        return self.first_name


class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)
    def __unicode__(self):
        return self.first_name

我的admin.py

from django.contrib import admin
from django.contrib.admin import AdminSite
from .models import Person,MyAlbum,Musician

from django.contrib import admin




class MyAdminSite(AdminSite):
    site_header = 'Wedding Administration'

site_admin = MyAdminSite(name='weddingadmin')

admin.site.register(Person)
admin.site.register(MyAlbum)
admin.site.register(Musician)


site_admin.register(Person)
site_admin.register(MyAlbum)

我的notifications.py

import admin_notifications
from models import Person
def notification():
    broken_links = Person.objects.filter(status=False).count()
    if broken_links:
        return "You have %s broken link%s.<br>You can view or fix them using the <a href='/admin/linkcheck/'>Link Manager</a>." % (broken_links, "s" if broken_links>1 else "")
    else:
        return ''

admin_notifications.register(notification)

我还在admin.com的index.html中进行了更改

{% load notification_tag %}

{% extends "admin/base_site.html" %}
{% load i18n static %}

{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/dashboard.css" %}" />{% endblock %}

{% block coltype %}colMS{% endblock %}

{% block bodyclass %}{{ block.super }} dashboard{% endblock %}

{% block breadcrumbs %}{% endblock %}

{% block content %}

{% error_notifications %}


<div id="content-main">

{% if app_list %}
     {% for app in app_list %}
         <div class="app-{{ app.app_label }} module">
         <table>
         <caption>
            <a href="{{ app.app_url }}" class="section" title="{% blocktrans with name=app.name %}Models in the {{ name }} application{% endblocktrans %}">{{ app.name }}</a>
    </caption>
    {% for model in app.models %}
        <tr class="model-{{ model.object_name|lower }}">
        {% if model.admin_url %}
            <th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}</a></th>
        {% else %}
            <th scope="row">{{ model.name }}</th>
        {% endif %}

        {% if model.add_url %}
            <td><a href="{{ model.add_url }}" class="addlink">{% trans 'Add' %}</a></td>
        {% else %}
            <td>&nbsp;</td>
        {% endif %}

        {% if model.admin_url %}
            <td><a href="{{ model.admin_url }}" class="changelink">{% trans 'Change' %}</a></td>
        {% else %}
            <td>&nbsp;</td>
        {% endif %}
        </tr>
    {% endfor %}
        </table>
        </div>
    {% endfor %}
{% else %}
    <p>{% trans "You don't have permission to edit anything." %}</p>
{% endif %}
</div>
{% endblock %}

{% block sidebar %}
<div id="content-related">
    <div class="module" id="recent-actions-module">
        <h2>{% trans 'Recent actions' %}</h2>
        <h3>{% trans 'My actions' %}</h3>
            {% load log %}
            {% get_admin_log 10 as admin_log for_user user %}
            {% if not admin_log %}
            <p>{% trans 'None available' %}</p>
            {% else %}
            <ul class="actionlist">
            {% for entry in admin_log %}
            <li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
                {% if entry.is_deletion or not entry.get_admin_url %}
                    {{ entry.object_repr }}
                {% else %}
                    <a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
                {% endif %}
                <br/>
                {% if entry.content_type %}
                    <span class="mini quiet">{% filter capfirst %}{{ entry.content_type }}{% endfilter %}</span>
                {% else %}
                    <span class="mini quiet">{% trans 'Unknown content' %}</span>
                {% endif %}
            </li>
            {% endfor %}
            </ul>
            {% endif %}
    </div>
</div>
{% endblock %}

请告诉我我做错了什么。index.html是管理模板的实际index.html

编辑1:

TemplateSyntaxError at /admin/

'notification_tag' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_static
admin_urls
cache
i18n
l10n
log
static
staticfiles
tz

1 个答案:

答案 0 :(得分:0)

我是通过pip安装django-admin-notifications但是我发现只有init.py文件安装在site-packages中所以我克隆了存储库所以我的建议是不要通过pip安装django-admin-notifications尽管有一个包可用,但只安装了init.py文件