使用CBV时的一些报错
- takes at most 1 positional arguments but 2 were given
位置参数给多了,一般是在urls.py
在没有写as_view()
方法
- TypeError at XXX 'module' is an invalid keyword argument for this function
类型错误,xxx参数是在这个函数里面是一个无效的关键字参数
这个时候检查视图函数views.py
,模板html
可能排不出错,如果是一个需要post的页面,调试也很麻烦,回头看相关的定义,问题可能出现在模型定义上,事实上就是在models.py
里外键的名称写错了。遇到TypeError类型错误要注意模型定义有没有出错,这也是一个因素。 - Page not found(404) 目前的路径没有匹配,解析不了url。
这时候{% url %}
是对的,给的参数也是对的,就是没有办法给到正确中的url。下面的代码中,text,image,video是没办法解析url的,file却可以,原因是file没有换行,换行了就解析不了,算是Django模板语言的一个坑吧。
- Django发送邮件的坑
用send_email()发送邮件,如果是qq的话,EMAIL_HOST_PASSWORD是填的授权码,不是密码,而且,不要有空格。如果是密码的话,返回的是1,成功,但是实际上还是没有邮件发出去的。
这是我成功的配置:
EMAIL_HOST = 'smtp.qq.com'
EMAIL_HOST_USER = '你的QQ邮箱'
EMAIL_HOST_PASSWORD = '16位授权码'
EMAIL_USE_TLS = True
EMAIL_PORT = 25
用了EMAIL_USE_SSL就报错,不知为何。
- 表单提交地址错误
有时我们在提交表单时,提交的地址是提交给当前页面的,而地址是通过HTML代码的action属性指定的。提交给当前页面的时候,通过<form action=".">
提交,可是submit之后提示页面不存在,这里可能的一个错误是url的设置,url的endpoint端点没有写/
后缀,这回导致提交表单后找不到当前页面。