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

3

我需要在Mezzanine管理员界面中添加一个自定义视图,这是一个不由模型支持但需要api调用的统计和报告仪表板。

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

1个回答

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})

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接