Django:Django的堆栈顺序是什么?

时间:2010-01-29 05:36:30

标签: django django-models django-middleware

我认为这是提出问题的正确方法。我想知道代码的哪些部分先执行,第二次等等。

我的假设是,但我不知道:

  1. 请求
  2. 中间件
  3. 查看
  4. 模型
  5. 中间件
  6. 响应
  7. 我问的原因是因为我希望基于请求变量在模型中发生动态变化,并且我试图设置最好的方法来自动将请求添加到模型层而不传递通过观点。我会假设某种中间件奇妙的装置会以某种方式实现它。

3 个答案:

答案 0 :(得分:4)

回答你的澄清评论 - 你无法从这里到达那里。

models.py只是一个放置模型类的文件,模型类只是可以从各处访问的类。除非将request对象传递给您正在使用的函数,否则它不存在,并且没有request.user。模型可以在任何地方使用,而不仅仅是在request的上下文中。

如果需要使用请求对象,请将其作为参数传递。如果这没有意义,那么你的模型就错了。

答案 1 :(得分:1)

模型和模板都不是堆栈的一部分。在视图中完成您的工作。

答案 2 :(得分:1)

我认为它更像是:

  1. 请求
  2. 中间件(URL映射器)
  3. 查看
    1. 模型(如果视图请求)
    2. 模板(如果视图请求)
  4. 中间件(响应输出)