在Django中,为特定视图重新洗牌对象的功能是应该进入模型还是视图?

时间:2011-05-26 11:46:57

标签: django view model code-organization

我要求提供有关视图代码与模型代码的功能的一般指导。

具体来说,我有一个函数,它接受一个对象列表,并根据字段是否已更改将它们拖放到列表列表中。例如:

[{a:1,...},{a:1,...},{a:2,...},{a:1,...},{a:1,...}]

将转变为

[[{a:1,...},{a:1,...}],[{a:2,...}],[{a:1,...},{a:1,...}]]

此转换的目的是准备数据以便在模板中呈现为嵌套循环。

我应该创建像group_objects(queryset)这样的模型函数,还是应该将此逻辑放入视图中?更重要的是,你的建议背后的想法是什么?

2 个答案:

答案 0 :(得分:4)

如果此功能用于模板渲染,则它应该是自定义模板标记(或过滤器)。

查看regroup过滤器,可能会用于您的任务。

答案 1 :(得分:0)

Django文档明确指出表级功能最好应在模型管理器(link)中实现。所以我想如果你想遵循Django标准,你就可以在模型管理器中实现它。