我需要向Mezzanine管理员添加自定义视图,这是一个统计和报告信息中心,不受模型支持,但是api调用。
我有以下问题: 1.我在哪里添加自定义模块?它应该在我的应用程序或应用程序本身的根目录下的/ theme目录下吗? 2.如何注册此模块以显示左侧边栏导航菜单中的视图?
答案 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管理页面的内容区域中。单击链接。