【问题标题】:Add Custom Admin Category and Page for non-model view in Mezzanine为夹层中的非模型视图添加自定义管理类别和页面
【发布时间】:2014-12-15 22:09:19
【问题描述】:

我需要向 Mezzanine admin 添加一个自定义视图,这是一个不受模型支持但由 api 调用支持的统计和报告仪表板。

我有以下问题: 1.我在哪里添加自定义模块?这应该在我的应用程序中的 /theme 目录下还是在应用程序本身的根目录下? 2.如何注册此模块以显示左侧导航菜单中的视图?

【问题讨论】:

    标签: django admin mezzanine


    【解决方案1】:

    我做了类似的事情,我想将 jqGrid 报告添加到管理界面。这是现有数据的报告(自定义产品视图),因此它没有自己的模型。此功能几乎内置于 Mezzanine 框架中,只添加了一些内容。

    要让菜单项显示在左侧菜单中,需要在 settings.py 中添加为 ADMIN_MENU_ORDER。

    ADMIN_MENU_ORDER = (
        ("Content", ("pages.Page", "blog.BlogPost", "generic.ThreadedComment", ("Media Library", "fb_browse"))),
        (("Shop"), ("shop.Product", "shop.ProductOption", "shop.DiscountCode", "shop.Sale", "shop.Order",("Product Report", "product_report_view"))),
        ("Site", ("sites.Site", "redirects.Redirect", "conf.Setting")),
        ("Users", ("auth.User", "auth.Group")),
    )
    

    以下所有项目都是默认墨盒设置的一部分,“产品报告”部分除外。通过放置一个元组而不只是模型名称,第一个元素成为菜单项的名称,第二个元素是所使用的视图的名称。

    ("产品报告", "jqgrid_sample_view")

    如果使用模型名称(如“shop.Product”,则使用 shop.Product 模型,并将模型名称用作菜单项。

    在我的例子中,视图的目的是使用 jdqGrid 渲染一个 jqGrid,但您可以将其调整为您想要的任何视图。

    def jqgrid_sample_view(request):
        grid = ProductGrid
        request.grid = grid
        return render(request, 'product_report.html', {'grid': grid})
    

    当点击“产品报告”链接时,视图生成的 HTML 被插入到 Mezzanine 管理页面的内容区域中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      相关资源
      最近更新 更多