django - Django项目中每个应用程序的不同错误处理程序

标签 django error-handling

我正在开发一个包含多个应用程序的Django 1.3项目。项目结构如下所示:

- MyProject
  - manage.py
  - MyProject
    - settings.py
    - url.py
    - wsgi.py
  - core
    - models.py
  - web
    - urls.py
    - views.py
  - api
    - urls.py
    - views.py

我现在想为api应用程序定义不同的handler404和handler500,因为它应该返回JSON,而web返回HTML并可以使用默认处理程序。

有没有一种方法可以覆盖此设置,使其仅对一个应用程序有效?正因为如此,我真的很想避免运行多个服务器实例。

谢谢西蒙

最佳答案

Django httphandler404对于网站而言是全局的。在您的情况下,您将必须编写一个包装器 View ,该 View 取决于url(或request中的某些其他属性),要么返回jsont_code应用程序的JSON,要么返回api应用程序的HTML。您还可以在web中定义单独的错误处理 View ,并且api可以从包装 View 中调用它们。

引用:Customizing error views

关于django - Django项目中每个应用程序的不同错误处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313420/

相关文章:

python - 未创建 Django 测试表

python - 访问 django 中 n-uplet 的列的值

python - 嵌套的 Django 标签

ruby - Mongoid::Errors::DocumentNotFound is raised even after rescuing

error-handling - 错误在Erlang中传播

python - 在不同的测试类之间共享数据

python - 如何更改虚拟环境在 Ubuntu 14.04 中使用的 python 版本?

java - Try-catch:这是可以接受的做法吗?

在 ANTLR 中使用正确的 CSS 解析约定解析 CSS 2.1

ajax - 与部分 View 并行的ASP.NET MVC AJAX调用返回错误消息