通过复杂的逻辑获取用户代码的特定目标

时间:2011-05-05 17:46:14

标签: django django-models

我想通过复杂逻辑为特定用户获取特定目标。这段代码应该放在View还是Model?

如果它应该进入模型,它将如何实现,因为用户模型是由Django编写的,我不能添加方法?

我意识到这不是一个特定的错误问题,但它似乎应该是你,大师,因此不应该产生模糊的答案。

感谢名单

1 个答案:

答案 0 :(得分:1)

您可以将其放在模型或视图中,甚至可以使用celery之类的作业/任务队列进行外部处理。关于模型与视图问题,我倾向于将逻辑放入视图中,特别是如果我需要集中处理来自多个模型的数据。如果将逻辑实现为模型上的方法,则可以从视图或任何您想要的位置调用它。您还可以非常轻松地实现缓存并将结果存储在模型上。考虑使用AJAX异步提取结果。您还应该查看有关storing additional info about a user的信息的文档。

在视图中存储逻辑

  • 从不必要的复杂化中解脱出来 模型
  • 如果您需要与多个模型互动,可能是更好的方法
  • 易于实施和维护
  • 不灵活,不能在任何地方重复使用

在模型上存储逻辑

  • 在整个项目中,在视图和/或脚本中使用它非常容易
  • 轻松在模型上进行缓存
  • 通过继承可以轻松地为各种用途定制逻辑