我正在开发一个包含多个应用程序的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/