在我自己的模板中使用Django管理列表视图?

时间:2011-06-06 23:17:31

标签: django forms templates

我知道这是一个新手问题,但是,我想在我自己的一个模板中呈现模型的表格列表视图。

从管理界面获取表单而不是编写自己的表单似乎不是一件容易的事。我在这里有错误的想法吗?

像往常一样,文档似乎带我到目前为止......

如果这是一种明智的做法,我该怎么做呢? 如果不是 - 是否有好的片段?

1 个答案:

答案 0 :(得分:5)

我从Django开始就用django-admin来思考一切时犯了错误。尝试将管理员视为“只是另一个应用程序”。你想做什么?您是否只想列出特定型号的对象?如果是这样,那很容易手动编写:

<强> views.py

def list_objects(request):
    return simple.direct_to_template(request,
        template='folder/templ.html',
        extra_context={
            "objects" : MyModel.objects.all().order_by('some_field')
        })

<强> templ.html

...
<ul>
    <li>
        {{ object.title }}
    </li>
</ul>

另一方面,如果您想添加添加/删除/编辑对象等功能,那么它会更复杂一些。您需要为模型创建表单,以及一些其他视图来处理不同的任务。

Django试图通过提供 generic_views 来重复这些重复生活。看一下,你会发现他们需要编写CRUD(创建,更新删除)界面等一些痛苦。