我做了一个Django 网站,但是我喝了库莱德,我想做一个IPhone版本.经过深思熟虑后,我提出了两个 Select :
- 创建一个完整的其他站点,比如i.xxxx.通用域名格式.使用Django的sites框架将其绑定到同一个数据库中.
- 找一段时间的中间件来读取用户代理,并动态更改模板目录.
然而,我真的更喜欢选项2;我有一些保留意见,主要是因为Django文档discourages changing settings on the fly.我找到了一个snippet,可以做我想做的事.我的主要问题是让它尽可能无缝,我希望它是自动和透明的用户.
有没有其他人遇到过同样的问题?有没有人愿意分享他们是如何处理制作Django网站的iPhone版本的?
Update个
我采用了中间件和调整模板调用的组合.
对于中间件,我使用了minidetector.我喜欢它,因为它能检测到plethora个移动用户代理.我所要做的就是核对申请.在我看来是移动的.
对于模板调用调整:
def check_mobile(request, template_name):
if request.mobile:
return 'mobile-%s'%template_name
return template_name
我将它用于任何我知道我有两个版本的视图.
TODO:
- 了解如何在render_to_response的扩展版本中访问request.mobile,这样我就不必使用check_mobile('template_name.html')
- 如果不存在移动版本,则使用之前的自动回退到常规模板.