2011-02-12 114 views
3

我想知道......管理员界面的激进使用

是否有可能在Django中创建一个完全独立于模型或应用程序的管理页面?

我在想像一个控制面板或控制界面,只从其他模型收集数据,但没有它自己的。

如果是这样,任何进一步的参考或链接?

谢谢

回答

2

完全可以这样做。你可以用常规视图做到这一点,然后创建一个扩展为“admin/base_site.html”模板,像这样的模板:

{% extends "admin/base_site.html" %} 

你也可以做面包是这样的:

{% block breadcrumbs %}{% if not is_popup %} 
    <div class="breadcrumbs"> 
     <a href="/admin/">Home</a> &rsaquo; 
     <a href="/admin/yourpath/">Up One Level</a> &rsaquo; 
     You Are Here 
    </div> 
{% endif %}{% endblock %} 

然后把你想要的任何内容放在“内容”块中。

3

正如Ben所说,您可以通过为仪表板页面创建视图功能来实现此目的。视图函数本身可以存在于你的项目中的任何地方,但是Django需要知道它在哪里(即不同于Django的默认模型管理视图,你需要在Django已知的urls.py文件中定义你的视图)。

有一点要补充,因为我假设这个仪表板页面只能通过管理界面访问,所以你想用一些内置的验证装饰器(例如login_requiredpermission_required)来保护它。

+0

我有一个`staff_only`装饰器,它基于`user_passes_test`(并检查`user.is_staff`),我用于此目的。 – 2011-02-12 08:34:09

2

我使用django-admin-tools来创建仪表板。使用此应用程序创建自定义仪表板模块非常简单。

还有另一个应用程序(nexus)具有类似的目的。我没有尝试过,但它看起来也不错。

1

Nexus看起来是正确的。 我使用它我自己和它非常有用。 至于哇,没有很多moudles availale,只有两个我认为。 它是由人制造的背后Disqus

链接:Nexus

有打算如何添加自己的模块添加的文档。

希望这会有所帮助。