whoosh, django 1.2 released

呼万唤始出来,django 1.2终于发布了。各位心急众可速度前往官方下载页面下载。至于不心急地,且往下看……

Django 1.2的新功能

  1. 支持指定多个数据库,咱在之前svn的时候就谈到了,这是个好玩意儿,具体看官方文档
  2. 开发人员受Form validation的启发,开发了model validation,不过目前我对此表示情绪稳定。
  3. 增强对CSRF攻击的防护功能,本人表示不懂且飘过。
  4. 新增加了一个健壮的消息框架,支持cookie和session,原来的基于数据库的消息模块可以退出历史舞台了。
  5. 可以在对象级别定义权限。
  6. 可以为匿名用户提供权限。
  7. 内建的User现在对用户名的限制更为宽松。
  8. 需要自定义email发送的童鞋可以看看新加的Email Backend
  9. 增强版if标签,好吧,让我们对着ifnotequal一起高呼,bye bye boy!
  10. 模板现在缓存,只需定义使用cached template loader就行。
  11. Fixture里面如今支持Natural Key,这使得现在的fixture可读性大大上升呀。
  12. 测试新增--fastfail参数,在遇到错误时直接退出,而不进行后面的测试。
  13. Model现在支持64位整型字段——BigIntegerField
  14. 增强多语言处理,如今在处理时间和form的时候会参考当前的locale进行本地化。
  15. ModelAdmin如今终于支持readonly_fields了,热泪盈眶啊。
  16. django-admin.py/manage.py如今可以从DJANGO_COLORS环境变量里读取高亮设置,在支持ASCII色彩的终端里面输出装b的彩色文字:P
  17. Syndication如今可以直接作为view在URLconf里面使用。
  18. GeoDjango增加了一些新功能,这个没用过,飘过……
  19. admin中的inline操作使用了js进行了增强,UE更酷更爽更舒服。
  20. 模板标签now新增两个格式化字符:cu

与之前版本不兼容的改动

好吧,只说我认识的 = =

  1. CSRF防护,这个不认识,关心的自己看去……
  2. 需要自定义Model Field的童鞋注意了,如果在储存和获取前需要对持久层的数据进行一定的包装处理,这个你必须看看
  3. 具有状态的模板标签在模板缓存里面可能会出现问题,因为Django1.2在处理模板时会使用不同的线程,这点需要注意。
  4. user_passes_test,login_requiredpermission_required如今如果需要修饰class中的method的话,需要多套用一个method_decorator
  5. if标签改了,然后原来的if andif or就不能用了,会报错。
  6. LazyObject有改动,没用过,关心的童鞋自己看去
  7. 如果你以前在定义Model的时候使用了__dict__,你需要确认一下为了多数据库支持而新加的_state变量对你的代码有没有影响。
  8. 运行测试时的退出代码不再表示失败的测试数量。现在改成0表示成功,1表示失败,而失败的测试用例量在测试最后的输出中可以看到。
  9. 逗号和分号在cookie中的存放字符做了改变,如果你在客户端cookie中存了这两个玩意儿,可能会有点问题。
  10. ModelForm在调用is_valid的时候可能会清除数据,所以最好传一个copy进去。
  11. MySQL中的BooleanField从返回10改成返回TrueFalse
  12. Formset中的max_num的意义发生了一点变化,以前0表示是没有限制,如今None表示没有限制,0表示加上0个form,相当与extra为0。

那些废弃但是仍然兼容的东西就不说了,具体还是看官方的release note吧。

对“whoosh, django 1.2 released”的2条评论

  1. Avatar

    希望某一天Django不会变成另一个体积庞大的怪兽。少即是多。

    展开回复(1)

    收起回复

  2. Avatar

发表评论

评论备注:

  1. 留言时的头像是Gravatar提供的服务。
  2. By submitting a comment here you grant this site a perpetual license to reproduce your words and name/web site in attribution. So, you don't fully own your words, so to speak.