错误日志:
项目进行中之常见错误:
1.TypeError: init() missing 1 required positional argument: ‘on_delete’
在外键值的后面加上on_delete=models.CASCADE
https://www.cnblogs.com/phyger/p/8035253.html
2.Specifying a namespace in include()without providing an app_name
python3 Django 环境下,如果你遇到在根目录下urls.py中的include方法的第二个参数namespace添加之后就出错的问题。请在[app_name]目录下的urls.py中的urlpatterns前面加上app_name=’[app_name]’, [app_name]代表你的应用的名称。
例如:app_name =’[learning_logs]’; app_name =’[users]’
https://blog.csdn.net/qq_27437781/article/details/80436799
3.ModuleNotFoundError: No module named ‘django.core.urlresolvers’
原因就是:django2.0 把原来的 django.core.urlresolvers 包 更改为了 django.urls包,所以我们需要把导入的包都修改一下就可以了。
解决方法就是:
from django.urls import reverse
https://blog.csdn.net/weixin_35757704/article/details/78977753
4.ImportError: cannot import name ‘login’
在2.1版本,基于登录的、注销等基于功能的视图已被重新使用之前版本URL:longin在2.1变为LoginView
修改为:from django.contrib.auth.views import LoginView
https://blog.csdn.net/Assertn/article/details/83623703
https://blog.csdn.net/qq_41767930/article/details/83040724
5.创建 .gitignore 提示必须键入文件名
创建一个文件命名为 .gitignore. 的文件, 注意文件最后有一个.
随后会弹出提示“如果改变文件扩展名,可能会导致文件不可用。确实要更改吗?。
点击确定后文件名末尾的多余的点也会被自动移除。
项目完成时之功能拓展:
由于时间问题,最终只打算加一个简单的留言功能。本以为很简单应该很快做完的,没想到还是花了很长时间。代码大致上就是在原有的基础上,模仿edit_entry来弄的,万万没想到事情没有那么简单。明明所有代码都一模一样,为什么在某个topic的详细页面就是不显示有评论呢?只是显示了”there are no comments in this topic yet.”但是不可能呀,我明明已经提交了很多次评论,到底是怎么回事呢?
首先,会不会是代码出错?于是认真对了一下所有代码,甚至把不需要的都加上去了,弄得和entry那块一模一样,结果还是没用。排除。
再来,会不会是提交的时候,没有成功记录到数据库中?于是下载sqlitemanager,查看数据库文件db.sqlite3,使用查询语句查看learning_logs_comment表中的text数据,里面确确实实记录了我提交的所有评论。与entry表对比一下topic_id以及其他数据,都没有什么区别。于是也排除。
那么,还是回到代码上,会不会是没有声明comments之类的?在编辑器中查询‘entries’字段,看看有没有entries所在的地方,却没有comments的(毕竟两个功能很接近,代码应该也很接近的)果然有,错误不在views.comment而是出在我没有检查过的views.topic,必须加入comments = topic.comment_set.order_by(’-date_added’),并且在context中写入comments。最后终于看到了成果。(我竟然因为这点东西卡了一整天!)
最后补充一些小点:
- 因为留言功能应该是公开笔记的,所以去掉了一些需要用户权限的地方。但是创建主题、编辑笔记和留言依然需要用户登录。
- 前面创建了新的model comment,所以要记得进行数据库迁移,否则会报错。