首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -覆盖模型的保存/删除功能,而不是在视图中执行

Django -覆盖模型的保存/删除功能,而不是在视图中执行
EN

Stack Overflow用户
提问于 2013-05-07 14:41:56
回答 1查看 106关注 0票数 1

我有一个模型Quote,它有一个指向用户模型的外键。用户可以有0到10个报价,如果有一个或多个报价,则其中一个应该是主报价(主报价是报价模型的一个字段)。

当用户添加报价时,检查用户是否有其他报价,如果没有,则将新报价设置为主报价。删除主要报价时,如果用户有任何其他报价,则会将另一个报价设置为主要报价。

现在,我在各自的视图中执行此操作。我想知道覆盖模型的savedelete函数并在那里完成所有这些是不是更好。

那么,执行这些任务的正确位置是模型还是视图?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 14:45:42

一般的共识是,胖模型和帮助器,瘦视图。换句话说,你的视图应该尽可能简单;你的模型应该尽可能丰富,并为外围部分提供大量的辅助代码。

还要记住,如果您覆盖了模型方法,您将提供一种“保证”,即无论以何种方式访问ORM,都将应用您的规则。如果只在视图中执行逻辑,那么在其他任何地方;例如,使用自定义管理命令或django shell、模板标记,甚至在另一个视图中,都有可能不应用您的规则。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16412772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档