Django 1.5 alpha1主要更新内容如下:
- 最大的改变就是支持Python 3了,不过是实验性的,推荐到1.6的时候再部署到生产环境。这样大家就可以慢慢过渡到1.6,另外大量的Django的app也需要升级到支持1.5。
- 被广大用户诟病的user扩展问题,终于得到较好的解决了,现在支持建立自己的UserModel,像这样:
在settings里面指定:
AUTH_USER_MODEL = 'myapp.MyUser'
class MyUser(AbstractBaseUser): identifier = models.CharField(max_length=40, unique=True, db_index=True) ... USERNAME_FIELD = 'identifier'这样实现方式更加优雅,因此,1.5之前的UserProfile的方式也被废弃了。
- models.save方法增加了update_fields参数,指定此参数时,可以只更新指定的字段,而不是所有的字段都更新。
- 能缓存model的关联实例,这个特性在对OneToOne等字段关联实例时会进行缓存,可与prefetch_related相结合使用
- 新增加了一个 StreamingHttpResponse ,能生成一个流式响应对象,这个还是比较有用的。1.5之前也有人做了一个中间件,使用比较麻烦,现在有这个就比较方便了。
- 新增一个{% verbatim %}模板标签 ,用来处理javascript模板引擎与django模板语法的冲突。比如有些javascript模板引擎使用这样的语法:
{{if dying}}Still alive.{{/if}}这个语法就与django模板语法的冲突,引入{{verbatitem}}就可以在区块内停止django模板渲染原样输出。
{% verbatim %} {{if dying}}Still alive.{{/if}} {% endverbatim %}如果你没有用到前端javascript模板引擎,这个特性就没什么用了。
其他的还有一些修正和改进,请查看
django release notes.