我想在Django admin中实现一个报告部分。这意味着在管理员主页中添加自定义部分,而不是模型列表,我会看到报告列表。我想使用Django的管理表和过滤器,排序,如果可能的话。
实现这一目标的“最佳”方式是什么?我意识到这是一个“大问题”所以我不是必须要求代码片段,所需操作的摘要会很好:)
P.S。报告我的意思是通过自定义查询(查询集或如何调用它)的“组合”模型。
P.S.2也许这个问题应该是这样的:如何在自己的管理视图中使用Django管理表功能?
P.S.3或者也许有一种方法可以向现有的管理界面提供我自己的数据。这样我就不需要做任何其他事情了。我只是想说而不是一个模型拿这个数据并将它显示在一个很好的表中,我可以对它进行排序,过滤等等。
答案 0 :(得分:11)
因此,您尝试将新页面添加到django admin。
本节将向您详细说明如何执行此操作 - https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-views-to-admin-sites
基本想法是在urls.py
中添加您想要的新网址,就好像您要为“前端”网页添加网址一样。关键的区别在于,您添加的这些新网址应该以{{1}}开头,看起来像^admin/
,这个网址会在您喜欢的位置指向您自己的自定义视图功能。
E.g。
^admin/my_special_link_in_admin
所以这是完全自定义的方式。我在这里引用了一个非常好的教程 - http://brandonkonkle.com/blog/2010/oct/4/django-admin-customization-examples/
此外,如果您不想做太多工作,请考虑使用Django Admin Plus - https://github.com/jsocol/django-adminplus
或django-admin-views - https://github.com/frankwiles/django-admin-views
答案 1 :(得分:2)
此外,有一个很好的应用程序:
" admin_reports"是一个Django应用程序,可以轻松创建数据聚合报告,以显示在Django admin。
中Django管理员非常注重模型,它提供了一种快速简单的方法来为CRUD界面创建GUI,但通常需要以聚合形式显示数据,这里需要这样做。其中admin_reports很方便。
我们的想法是拥有一个类似于
ModelAdmin
(来自django.contrib.admin
)的类,它允许显示专注于实现聚合过程的派生数据。