您的位置:首页 > 编程语言 > Go语言

将项目从Django 1.4 升级至Django 1.6.2 源码修改的三个步骤

2014-02-08 11:26 453 查看
年后上班第一天,看到Django最新的稳定版本已经升级到1.6.2。手上暂时没有其他的事,就尝试将原来在1.4下的代码迁移到1.6下。安装什么的就不说了,pip什么的自己玩去。完成升级以后,将以前的一个项目复制过来以后发现有些问题。总结一下,通过三个步骤修改源码,来避免错误。


1、指定session序列化方式
错误:
TypeError: set([]) is not JSON serializable

修改方法

在settings.py增加如下一行。
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

2、修改各模块中urls.py文件
错误:
ImportError: No module named defaults

修改方法:

由于在django1.6之后,django.conf.urls.defaults已经不再被支持。
from django.conf.urls.defaults import *
改为from django.conf.urls import patterns, url, include
批量修改方法:
sed -i's/from django.conf.urls.defaults import \*/from django.conf.urls import patterns, url, include/g' */urls.py

3、修改模板文件中url的书写方式(这项修改在1.5中也需要被修改)
错误:

NoReverseMatch at /

'url' requires a non-empty first argument. The syntax changed in Django 1.5, see the docs.

修改方法:


<a href="{% url common_business %}">
<a href="{% url 'common_business' %}">
批量修改方法:
sed -i -r -e "s#\{% url ([a-zA-Z0-9_.:-]+)#\{% url '\1'#g" templates/*/*.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: