我在缠绕这个问题时遇到了麻烦.现在我有一些看起来像这样的模型:
def Review(models.Model)
...fields...
overall_score = models.FloatField(blank=True)
def Score(models.Model)
review = models.ForeignKey(Review)
question = models.TextField()
grade = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
评论有几个"分数",整体分数是分数的平均值.保存评论或分数时,我需要重新计算total_score平均值.现在我正在使用重写的保存方法.使用Django的信号调度程序会有什么好处吗?
我做了一个Django网站,但我喝了Koolaid,我想制作一个iPhone版本.经过深思熟虑,我提出了两个选择:
不过,我真的更喜欢选项#2; 我有一些保留意见,主要是因为Django文档不鼓励动态更改设置.我找到了一个可以做我喜欢的片段.我的主要问题是让它尽可能无缝,我希望它对用户来说是自动化和透明的.
还有其他人遇到同样的问题吗?是否有人愿意分享他们如何解决制作iPhone版Django网站的问题?
更新
我使用了中间件和调整模板调用的组合.
对于中间件,我使用了minidetector.我喜欢它,因为它检测到过多的移动用户代理.我所要做的就是在我的视图中检查request.mobile.
对于模板调用调整:
def check_mobile(request, template_name):
if request.mobile:
return 'mobile-%s'%template_name
return template_name
Run Code Online (Sandbox Code Playgroud)
我使用它来查看我知道我有两个版本的任何视图.
去做:
python django django-templates django-middleware mobile-website
对于开发,我使用本地LAMP堆栈,用于生产我正在使用MediaTemple的Django容器(我喜欢BTW).MT的容器使用lighthttpd.老实说,我从来没有任何其他经验.我一直使用Apache.我一直在做一些阅读:
这是问题: