升級過程中碰到的一些注意點(diǎn),拿出來與大家分享鸿市,希望對正在或需要升級項(xiàng)目的朋友有幫助奈泪。
1、URL
Django1.6中使用的是如下代碼
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index')
)
在Django1.10版本中灸芳,patterns方法已經(jīng)被移除了,換成url即可:
from django.conf.urls import url
from polls import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
2拜姿、django-extensions
如果在項(xiàng)目中使用了django-extensions
烙样,并且版本低于1.5.9,那么在項(xiàng)目升級的過程中蕊肥,也要把django-extensions
升級到1.5.9版本谒获。
命令直接用
pip install django-extensions==1.5.9
3、django-cors-headers
如果在項(xiàng)目中使用了django-cors-headers
壁却,由于Django1.10已經(jīng)不支持這個(gè)組件了批狱,推薦使用django-cors-middleware
,具體命令如下展东。
首先移除django-cors-headers:
pip uninstall django-cors-headers
如果權(quán)限不夠的話赔硫,在前面加上 sudo
。
然后安裝django-cors-middleware
pip install django-cors-middleware
如果權(quán)限不夠的話盐肃,在前面加上 sudo
爪膊。
4权悟、South
如果在1.6版本項(xiàng)目中使用了South的話,還要做一下遷移的工作推盛。步驟如下:
- 確認(rèn)所有的
installs
都以South
創(chuàng)建的遷移完全更新峦阁。就是確認(rèn)全部是要更新的。 - 從INSTALLED_APPS
中移除 'south'耘成。 - 刪除你所有的遷移文件(編號(hào)標(biāo)識(shí)的)榔昔,但不能刪除所在目錄或
__init__.py
(切記不可刪除__init__.py
),也需確認(rèn)刪除.pyc
文件瘪菌。 - 運(yùn)行
python manage.py makemigrations
. Django應(yīng)該看到空的遷移目錄撒会,并以新的格式進(jìn)行新的初始遷移。 - 執(zhí)行
python manage.py migrate --fake-initial
控嗜。Django會(huì)看到初始遷移的表已經(jīng)存在茧彤,并將它們標(biāo)記為已應(yīng)用,而不運(yùn)行它們疆栏。(Django不會(huì)檢查表模式是否與您的模型匹配曾掂,只是正確的表名存在)。
遷移參考鏈接:http://python.usyiyi.cn/translate/django_182/topics/migrations.html
5壁顶、Templates
在升級之后珠洗,原來項(xiàng)目中settings.py
中對于TEMPLATES
的設(shè)置也失效了。
原項(xiàng)目的設(shè)置為:
TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, 'frontend/dist/'),
)
升級之后修改為:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(PROJECT_ROOT, 'frontend/dist/')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]