将数据传递到主模板

时间:2016-04-04 14:27:20

标签: django django-models django-admin django-views

我自定义django admin以在顶部显示自定义导航栏。所以我向adminClass(在admin.py中)添加了一个覆盖changelist_view的方法,并传递一个对象列表(在changelist_view内),模板将其恢复并显示在导航栏中

def changelist_view(self, request, extra_context=None):
    extra_context = extra_context or {}                 
    mygetModels = getModels()
    extra_context["modelsTables"] = mygetModels.getTablesModels()
    return super(SrcComscoreInformeAdmin, self).changelist_view(request, extra_context=extra_context)

当我在Django中调用特定的表时,工作正常但是如果我尝试添加新记录(所以url将是/admin/db/table_name/add/),这个模板正在使用我的自定义导航栏(我定义它在我的重写base_site.html)中,我想要,但这个模板(添加选项)没有得到我想从视图发送的列表。我应该更改/覆盖另一个视图吗?如何像/admin/table_name/那样修改正确的视图以传递对象列表?

1 个答案:

答案 0 :(得分:1)

changelist_view用于显示模型项目表。

如果您要添加新项目或修改现有项目,则需要分别覆盖add_viewchange_view