升级Django 0.96到1.0的最佳方法是什么?

8 投票
5 回答
911 浏览
提问于 2025-04-11 09:25

我应该尝试升级我现在的应用,还是干脆从头开始重写,尽量保留一些可以用的部分(比如模板等)呢?

5 个回答

2

只需要升级你的应用程序就可以了。从0.96版本到1.0版本的变化很大,但在向后不兼容的改动方面,我觉得你的应用程序可能连10%的变化都没有。

在Django 1.0之前,我一直在使用开发版本,所以对我来说,这个过渡是逐渐的。不过,即便如此,我需要改动的主要内容也就几个:newforms、newforms-admin,还有str()变成unicode(),以及maxlength改成max_length。

其他大部分变化都是新功能、后端重写,或者是一些作为一个只是在做基础网站的人根本接触不到的东西。

3

升级。对我来说,这很简单:把 __str__() 改成 __unicode__(),写一个基本的 admin.py,就完成了。只需在1.0版本上运行你的应用,测试一下,当遇到错误时,可以查看不兼容的变更文档,看看怎么解决问题。

7

虽然这要看你在做什么,但大多数应用程序在升级后应该能顺利运行,然后再修复那些出问题的地方。根据我的经验,升级后我通常需要修复的主要问题有:

  1. 模型的一些奇怪变化,比如跟外键相关的语法变了。

  2. 少量模板的变化,最明显的是自动转义的处理。

  3. 任何依赖于Django内部结构的东西。除非你在做一些动态修改Django内部行为的事情,否则这应该不会成为问题。

总的来说,除非你在做一些非常奇怪或者复杂的事情,简单的升级应该不会太麻烦,只需要做几个小改动就可以了。

撰写回答