在Mezzanine中为非模型视图添加自定义管理员类别和页面

时间:2014-12-15 22:09:20

标签: django admin mezzanine

我需要向Mezzanine管理员添加自定义视图,这是一个统计和报告信息中心,不受模型支持,但是api调用。

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

1 个答案:

答案 0 :(得分:0)

我做了类似的事情,我想在管理界面添加一个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})

当"产品报告&#34>时,视图生成的HTML将插入到Mezzanine管理页面的内容区域中。单击链接。