一些Django的一些踩坑

使用CBV时的一些报错

  • takes at most 1 positional arguments but 2 were given
    位置参数给多了,一般是在urls.py在没有写as_view()方法
    Screenshot from 2019-01-06 15-50-32.png
  • TypeError at XXX 'module' is an invalid keyword argument for this function
    类型错误,xxx参数是在这个函数里面是一个无效的关键字参数
    这个时候检查视图函数views.py,模板html可能排不出错,如果是一个需要post的页面,调试也很麻烦,回头看相关的定义,问题可能出现在模型定义上,事实上就是在models.py里外键的名称写错了。遇到TypeError类型错误要注意模型定义有没有出错,这也是一个因素。
  • Screenshot from 2019-01-06 11-03-21.png
  • Page not found(404) 目前的路径没有匹配,解析不了url。
    这时候{% url %}是对的,给的参数也是对的,就是没有办法给到正确中的url。下面的代码中,text,image,video是没办法解析url的,file却可以,原因是file没有换行,换行了就解析不了,算是Django模板语言的一个坑吧。
    关键代码在Text,Image, Viedo, File那.png
无法解析url.png
  • 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属性指定的。提交给当前页面的时候,通过
    提交,可是submit之后提示页面不存在,这里可能的一个错误是url的设置,url的endpoint端点没有写/后缀,这回导致提交表单后找不到当前页面。

你可能感兴趣的:(一些Django的一些踩坑)