原文链接地址:

http://procrastinatingdev.com/django/most-important-changes-in-django-1-5/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ProcrastinatingDeveloperDjango+%28Procrastinating+Developer+»+Django%29

 

随着Django 1.5B1版本的发布和1.5最终版本的临近,我想我应该对1.5版本最大的变化介绍一下。点这里可以看到发布说明。

 

可配置的User model

Django 1.5版本最大的变化莫过于允许用户使用自定义的User Model,来代替已经使用了6年的Django内置User Model。在1.5版本之前,如果你想使用django用户认证模块(django.contrib.auth)就必须使用django内置的User Model,而在1.5版本(及以后),你可以使用自定义的User Model,来包含自己想要的字段(Twitter, Facebook, 大email字段等)

 

实验性质的支持Python 3

Django 1.5将会实验性的支持Python 3。目前来说python应用程序从py2到py3的移植还很复杂,所以不推荐在生产环境中使用。Django 1.6版本将会完全支持python 3。

 

更新数据只保存部分字段

在新版本里,你可以在model的save方法里使用一个update_fields参数,来指定哪些字段需要保存更新,而不是所有字段都更新。这样做是为了并发操作,并且提升了性能。示例如下:

obj.name = 'Adam'
obj.age = '25'
 
# This will only update the name field.
obj.save(update_fields=['name'])

 

{% verbatim %} template tag

Django 1.5将会增加一个新的template tag {% verbatim %},这个标签用于对一些使用其他的javascript框架有和django类似的标签时作用重大,使用这个标签中的代码,django将不会去解析其中的javascript标签。

 

不再需要404.html和500.html模板

在之前版本的django项目中,我们必须保证模板根目录下有404.html和500.html这两个文件,否则(在生产环境中)会报错。相当多的初级django开发人员都遇到过至少一次这样的问题。新版本将会提供这两个默认的模板,当然,如果你想在404和500页面更好看的话,还是需要自己来实现这两个模板。

 

新URL

1.5弃用,1.7将删除。很显然每个版本django都弃用一些不需要或者很少用的功能。

 

AUTH_PROFILE_MODULE

AUTH_PROFILE_MODULE和.get_profile()对于即将可以自定义的User Model来说已经是过时了,不过,如果你仍然想使用用户model的关联表来保存数据的话,最好的建议是使用OneToOne字段来关联。

 

SimpleJson

因为Django 1.5下降为Python 2.5的支持,他们现在可以依靠的json模块,包括与Python 2.6 +。这可能有一些未知的副作用,但在大多数情况下,应该没区别。

 

我期待django 1.5版本发布,而且我认为新版本最大的好处在于可以自定义User Model。你可以从这里下载1.5b1版本