【问题标题】:How to add report section to the Django admin?如何将报告部分添加到 Django 管理员?
【发布时间】:2012-11-03 15:13:49
【问题描述】:

我想在 Django 管理中实现一个报告部分。这意味着在管理主页中添加一个自定义部分,而不是模型列表,我会看到报告列表。如果可能的话,我想将 Django 的管理表与过滤器、排序以及所有功能一起使用。

实现这一目标的“最佳”方式是什么?我意识到这是一个“大”问题,所以我不一定要求代码 sn-ps,所需操作的摘要就可以了 :)

附:报告我的意思是自定义查询(查询集或如何调用它)的“组成”模型。

P.S.2 也许这个问题应该是这样的:如何在自己的管理视图中使用 Django 管理表功能?

P.S.3 或者也许有一种方法可以向现有的管理界面提供我自己的数据。这样我就不用做任何其他事情了。我只想说,而不是模型,获取这些数据并将其显示在一个漂亮的表格中,我可以对其进行排序、过滤等。

【问题讨论】:

  • “报告列表”是什么意思?你有什么特定的报告吗?
  • 报告是什么意思?您可以使用 django 准备一个自定义页面并制作任何您想要的任何东西。但是在这样的视图和模板中使用默认的 django 过滤器是不可能的。但是您可以轻松编写我们的过滤器。如何skip admin index page and going to a specific one
  • 我的意思是,您现在在 Django 管理主页中有应用程序名称作为部分的标题(蓝色背景),然后是该应用程序的模型列表。我想要一个带有“报告”标题的部分,然后是一个报告列表,例如“销售”、“畅销书”……几乎任何没有模型但由一些代码组成的表。而不是一个实际的模型,我会在后面有一个“虚构”的模型。
  • 您可以构建“模拟”模型:stackoverflow.com/questions/1813637/…

标签: django django-admin


【解决方案1】:

所以你正在尝试将新页面添加到 django 管理员中。

本节向您详细解释了如何做到这一点 - https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-views-to-admin-sites

基本想法是在urls.py 中添加您想要的新网址,就像您为“前端”页面添加网址一样。主要区别在于,您添加的这些新 url 应该以 ^admin/ 开头,看起来类似于 ^admin/my_special_link_in_admin,并且此 url 将指向您自己的自定义视图函数,位于您喜欢的位置。

例如

(r'^admin/my_special_link_in_admin/$', 'my_custom_admin_app.views.special_admin_page'),

所以这是完全定制的方式。我在这里参考了一个非常好的教程 - 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

【讨论】:

  • 是的,我想要新页面,但我不想使用自己的表格模板和功能。这是一项巨大的工作! :) 我希望优秀的 Django 管理员也可以处理自定义数据,而不仅仅是模型数据:D
  • 是的。我得到它。使用我更新的答案中提到的github.com/jsocol/django-adminplus
  • 这个 adminplus 会代替我写表格排序的需要吗?
  • 是的。它与标准 django 管理功能 100% 兼容。它所做的一切——如果你在这里查看它的模板github.com/jsocol/django-adminplus/tree/master/adminplus/…——是扩展以使用标准的 django 管理模板,同时允许你在自定义视图函数中编写自己的查询,你需要像这样注册admin.site.register_view('somepath', my_view)
  • 我明白了。这样做可以,但请查看我对问题的第三次编辑。可以这样做吗?会更快更优雅。
【解决方案2】:

另外,还有这个不错的应用:

django-admin-reports

“admin_reports”是一个 Django 应用程序,用于轻松创建数据聚合报告以显示在 Django admin 中。

Django 管理员非常关注模型,它提供了一种快速简单的方法来为 CRUD 界面创建 GUI,但通常需要以聚合形式显示数据,这就是 admin_reports 派上用场的地方。

这个想法是有一个类似于ModelAdmin(来自django.contrib.admin)的类,它允许显示专注于实现聚合过程的派生数据。

【讨论】:

  • 遗憾的是,django-admin-reports 不再是一个选项。它已被弃用,因为它不支持 django 3 :(。它只支持 django 2。
猜你喜欢
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 2015-07-13
  • 2020-12-15
  • 2011-07-10
  • 1970-01-01
相关资源
最近更新 更多