我想知道......管理员界面的激进使用
是否有可能在Django中创建一个完全独立于模型或应用程序的管理页面?
我在想像一个控制面板或控制界面,只从其他模型收集数据,但没有它自己的。
如果是这样,任何进一步的参考或链接?
谢谢
我想知道......管理员界面的激进使用
是否有可能在Django中创建一个完全独立于模型或应用程序的管理页面?
我在想像一个控制面板或控制界面,只从其他模型收集数据,但没有它自己的。
如果是这样,任何进一步的参考或链接?
谢谢
完全可以这样做。你可以用常规视图做到这一点,然后创建一个扩展为“admin/base_site.html”模板,像这样的模板:
{% extends "admin/base_site.html" %}
你也可以做面包是这样的:
{% block breadcrumbs %}{% if not is_popup %}
<div class="breadcrumbs">
<a href="/admin/">Home</a> ›
<a href="/admin/yourpath/">Up One Level</a> ›
You Are Here
</div>
{% endif %}{% endblock %}
然后把你想要的任何内容放在“内容”块中。
正如Ben所说,您可以通过为仪表板页面创建视图功能来实现此目的。视图函数本身可以存在于你的项目中的任何地方,但是Django需要知道它在哪里(即不同于Django的默认模型管理视图,你需要在Django已知的urls.py
文件中定义你的视图)。
有一点要补充,因为我假设这个仪表板页面只能通过管理界面访问,所以你想用一些内置的验证装饰器(例如login_required或permission_required)来保护它。
我使用django-admin-tools来创建仪表板。使用此应用程序创建自定义仪表板模块非常简单。
还有另一个应用程序(nexus)具有类似的目的。我没有尝试过,但它看起来也不错。
我有一个`staff_only`装饰器,它基于`user_passes_test`(并检查`user.is_staff`),我用于此目的。 – 2011-02-12 08:34:09