《Python编程从入门到实践》18,19章 django 新版本代码更改 (2020.5)
对你有帮助的话,点个赞支持一下,蟹蟹
18.2.4 定义模型Entry
model.py
topic=models.ForeignKey(Topic)
改为
topic=models.ForeignKey(Topic,on_delete=models.CASCADE)
在后面19.3.2 外键都需要添加on_delete=models.CASCADE
models.py
owner=models.ForeignKey(User,on_delete=models.CASCADE)
18.3.1映射URL
-
from django.conf.urls import include,url
-
from django.contrib import admin
-
urlpatterns=[
-
url(r’^admin/,include(admin.site.urls)),
-
url(r’‘,include(‘learning_logs.urls‘,namespace=’learning_logs‘)),
-
]
改为
-
from django.urls import path,include
-
……
-
urlpatterns=[
-
path(‘admin/’,admin.site.urls),
-
path(”,include((‘learning_logs.urls’,‘learning_logs’),
-
namespace=‘learning_logs’)),
-
]
梦翔儿注:’learning_logs’不加会404错位
重复的地方不做修改了,url改为path 把’r^$’ 三个符号去掉,后面都这样改
后面的 转到user.urls与转到learning_logs.urls形式一样
19.1.1
views.py
from django.core.urlresolvers import reverse
改为
from django.urls import reverse
梦翔儿 注:
from django.shortcuts import render
from django.http import HttpResponseRedirect
改为
from django.shortcuts import render, redirect
19.2.2
urls.py
-
from django.contrib.auth.views import login
-
…..
-
url(r’^login/$’,login,{template_name‘:’user/login.html},name=‘login’)
改为
-
from django.contrib.auth.views import LoginView
-
。。。。。
-
path(‘login/’,LoginView.as_view(template_name=‘users/login.html’),
-
name=‘login’),
并且要在项目setting.py文件中添加一行
‘DIRS’: [os.path.join(BASE_DIR, ‘users/Templates’)], 目的是让django找到 template_name 中的地址 在那个程序里
-
DATABASES = {
-
‘default’: {
-
‘ENGINE’: ‘django.db.backends.sqlite3’,
-
‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),
-
‘DIRS’: [os.path.join(BASE_DIR, ‘users/Templates’)],
-
}
-
}
其他地方出错,应该就是你敲错代码了^ ^ 完成如下
from:https://blog.csdn.net/a941142074/article/details/106001577?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control