千呼万唤始出来,django 1.2终于发布了。各位心急众可速度前往官方下载页面下载。至于不心急地,且往下看……
Django 1.2的新功能
- 支持指定多个数据库,咱在之前svn的时候就谈到了,这是个好玩意儿,具体看官方文档。
- 开发人员受Form validation的启发,开发了model validation,不过目前我对此表示情绪稳定。
- 增强对CSRF攻击的防护功能,本人表示不懂且飘过。
- 新增加了一个健壮的消息框架,支持cookie和session,原来的基于数据库的消息模块可以退出历史舞台了。
- 可以在对象级别定义权限。
- 可以为匿名用户提供权限。
- 内建的
User现在对用户名的限制更为宽松。 - 需要自定义email发送的童鞋可以看看新加的Email Backend。
- 增强版if标签,好吧,让我们对着
ifnotequal一起高呼,bye bye boy! - 模板现在缓存,只需定义使用cached template loader就行。
- Fixture里面如今支持Natural Key,这使得现在的fixture可读性大大上升呀。
- 测试新增
--fastfail参数,在遇到错误时直接退出,而不进行后面的测试。 -
Model现在支持64位整型字段——BigIntegerField。 - 增强多语言处理,如今在处理时间和form的时候会参考当前的locale进行本地化。
-
ModelAdmin如今终于支持readonly_fields了,热泪盈眶啊。 -
django-admin.py/manage.py如今可以从DJANGO_COLORS环境变量里读取高亮设置,在支持ASCII色彩的终端里面输出装b的彩色文字:P - Syndication如今可以直接作为view在URLconf里面使用。
- GeoDjango增加了一些新功能,这个没用过,飘过……
- admin中的inline操作使用了js进行了增强,UE更酷更爽更舒服。
- 模板标签
now新增两个格式化字符:c和u。
与之前版本不兼容的改动
好吧,只说我认识的 = =
- CSRF防护,这个不认识,关心的自己看去……
- 需要自定义Model Field的童鞋注意了,如果在储存和获取前需要对持久层的数据进行一定的包装处理,这个你必须看看!
- 具有状态的模板标签在模板缓存里面可能会出现问题,因为Django1.2在处理模板时会使用不同的线程,这点需要注意。
-
user_passes_test,login_required和permission_required如今如果需要修饰class中的method的话,需要多套用一个method_decorator。 -
if标签改了,然后原来的if and和if or就不能用了,会报错。 - LazyObject有改动,没用过,关心的童鞋自己看去。
- 如果你以前在定义
Model的时候使用了__dict__,你需要确认一下为了多数据库支持而新加的_state变量对你的代码有没有影响。 - 运行测试时的退出代码不再表示失败的测试数量。现在改成0表示成功,1表示失败,而失败的测试用例量在测试最后的输出中可以看到。
- 逗号和分号在cookie中的存放字符做了改变,如果你在客户端cookie中存了这两个玩意儿,可能会有点问题。
-
ModelForm在调用is_valid的时候可能会清除数据,所以最好传一个copy进去。 - MySQL中的
BooleanField从返回1或0改成返回True或False。 -
Formset中的max_num的意义发生了一点变化,以前0表示是没有限制,如今None表示没有限制,0表示加上0个form,相当与extra为0。
那些废弃但是仍然兼容的东西就不说了,具体还是看官方的release note吧。


希望某一天Django不会变成另一个体积庞大的怪兽。少即是多。
展开回复(1)
contrib里面的东西大可不用,呵呵