我们的网站可以通过完整的浏览器、移动浏览器和定制的 iPhone 应用程序访问。由于无论客户端如何,逻辑都基本相同,因此我们使用相同的视图来处理所有类型的请求。但在我们每一个观点的底部,我们都有类似的东西:
if request.is_mobile():
return render_to_response('foo/bar/baz_mobile.html', context)
elif request.is_api():
return json.dumps(context)
else:
return render_to_response('foo/bar/baz.html', context)
显然有更好的方法来做到这一点:)
我想过让我们的视图返回上下文字典,并将它们包装在一个决定如何呈现响应的装饰器中。或者,也许我可以对基于类的视图做些什么。
你会怎么做?