django2.2的bug
1.如果出现问题,先去到view.py里面,先删去render,然后在return之前加上一条print(‘1’),再使用HttpResponse返回一个字符串‘’2看看,如果1显示在终端,2显示在浏览器,那么一般是模板出现问题,接下来去查模板,模板不好查,需要一点一点查
2.有时候在cmd里面可以run起来,但是使用IDE的run按钮报错了,那么这时我们应该相信cmd,因为有可能说IDE的环境没有配置好。
3.django2.2版本本身存在一个bug(这个问题是编码问题,mac与Linux默认是Unicode编码,一般不会有问题,Windows是gbk编码,所以出现问题),有时候进行models层操作的时候浏览器出现:
A server error occurred. Please contact the administrator.
解决办法如下D:\Users\acer\AppData\Local\Programs\Python\Python37\Lib\site-packages\django\views\debug.py
在views/debug.py里面的open函数和read函数里面加上coding="utf8"即可
def get_traceback_html(self):
"""Return HTML version of debug 500 HTTP error page."""
with Path(CURRENT_DIR, 'templates', 'technical_500.html').open(encoding="utf8") as fh:
t = DEBUG_ENGINE.from_string(fh.read(encoding="utf8"))
c = Context(self.get_traceback_data(), use_l10n=False)
return t.render(c)
然后重启即可
Django2.0的bug:
https://blog.csdn.net/zhuyongru/article/details/99677313
model层的bug
- 在创建表的时候,如果有同名的表会创建失败
- 多对多关系表增加,add()里边传的是对象,或者加上*,传一个QuerySet,QuerySet里边是对象,不能直接传某一列作为参赛,可以传id
删的是id
admin遇到的bug
- 当创建完模型后,我们需要去setting.py里面去添加上app,然后进行相应表的生成,但是如果我们想通过admin进行管理,那么必须要去admin.py里面进行注册,即
from django.contrib import admin
from .models import Course, Lesson, Video, CourseResource
# Register your models here.
admin.site.register([Course, Lesson, Video, CourseResource])
注意当有多个class(四个或者以上),必须使用这种列表的形式,否则是会报错的,因为不用列表register方法只支持2个到3个参数的
表单的bug
传文件时表单记得加上这个,否则print(file)老是为None,都怀疑人生了.
<form enctype="multipart/form-data" method="POST" action="/login/">