gpt4 book ai didi

python - Django - 覆盖模型的保存/删除功能与在 View 中执行

转载 作者:太空宇宙 更新时间:2023-11-04 08:14:43 24 4
gpt4 key购买 nike

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

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

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

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

最佳答案

普遍的共识是,厚模型和助手,薄 View 。换句话说,你的观点应该尽可能简单;您的模型尽可能丰富,并为外围位提供大量帮助代码。

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

关于python - Django - 覆盖模型的保存/删除功能与在 View 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16412772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com