Django2已经发布,并且,我也更新了《跟老齐学Python:Django实战》一书的代码,以适应Django2。但是,考虑到购买以前印刷的读者之需要,将Django2相对于Django1的一些变化要点,供使用老版本图书,并且要学习使用Django2的读者参考。

1、Django2放弃支持Python2。推荐使用Python3.4及以后的版本。

2、reverse

#弃用
from django.core.urlresolvers import reverse, reverse_laze

#启用
from django.urls import reverse, reverse_laze
3、在settings.py中,从1.11把MIDDLEWARE_CLASSES改为MIDDLEWARE
4、user.is_authenticated()和user.is_anonymous()改为属性引用(user.is_authenticated and user.is_anonymous)
5、删除对SessionAuthenticationMiddleware类的引用
6、assignment_tag变成simple_tag;@register.assignment_tag改为@register.simple_tag
7、ForeignKey和OnetoOne模型字段中添加了on_delete=models.CASCADE
8、需要添加在应用的urls.py文件中添加 app_name = "appname"
9、在URL配置中使用path()。例如:
from django.urls import path

from . import views

app_name = "app name"

urlpatterns = [

    path("like/<int:content_type_id>:<int:object_id>/", views.LikeToggleView.as_view(), name="like_toggle")

]