我正在使用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> </td>
{% endif %}
{% if model.admin_url %}
<td><a href="{{ model.admin_url }}" class="changelink">{% trans 'Change' %}</a></td>
{% else %}
<td> </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
答案 0 :(得分:0)
我是通过pip安装django-admin-notifications但是我发现只有init.py文件安装在site-packages中所以我克隆了存储库所以我的建议是不要通过pip安装django-admin-notifications尽管有一个包可用,但只安装了init.py文件