我有一个模型Quote,它有一个指向用户模型的外键。用户可以有0到10个报价,如果有一个或多个报价,则其中一个应该是主报价(主报价是报价模型的一个字段)。
当用户添加报价时,检查用户是否有其他报价,如果没有,则将新报价设置为主报价。删除主要报价时,如果用户有任何其他报价,则会将另一个报价设置为主要报价。
现在,我在各自的视图中执行此操作。我想知道覆盖模型的save和delete函数并在那里完成所有这些是不是更好。
那么,执行这些任务的正确位置是模型还是视图?
发布于 2013-05-07 14:45:42
一般的共识是,胖模型和帮助器,瘦视图。换句话说,你的视图应该尽可能简单;你的模型应该尽可能丰富,并为外围部分提供大量的辅助代码。
还要记住,如果您覆盖了模型方法,您将提供一种“保证”,即无论以何种方式访问ORM,都将应用您的规则。如果只在视图中执行逻辑,那么在其他任何地方;例如,使用自定义管理命令或django shell、模板标记,甚至在另一个视图中,都有可能不应用您的规则。
https://stackoverflow.com/questions/16412772
复制相似问题