Django于本月25日发布了1.5 alpha1

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.







你可能感兴趣的:(Django于本月25日发布了1.5 alpha1)