1. 问题:使用forms表单过程中发现html中没有显示完整的输入框,如验证码框之类的,或者干脆没有一个输入框。

 原因:一般是因为在请求同一个页面时没有传递forms实例的参数,例如:下图中没有显示验证码输入框

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

毕业设计——小问题记录 随笔 第1张

 

2. The view xxxxx didn`t return an HttpResponse object. It returned None instead.红色部分是重点

记录一次低级错误:

毕业设计——小问题记录 随笔 第2张

如图所示,注意Exception Value,大致意思是说user_forget()没有返回一个HttpResponse对象,而是返回None,这说明user_forget()内缺少了return.....恩,就是这样,我去查代码时发现的。。。。

 3. 关于错误信息:didn`t retur an HttpResponse object.It renturned None instead.问题源头一般在两个地方:views.py中对应的处理函数,urls.py中对应的path。

对于views.py中对应的函数,一般就是没有return;对于urls.py中对应的path,则是对应的views.fun中的fun调用出错。如果views.py中的函数没有问题,那么就该去urls.py中检查对应的path。比如笔者遇到的一个小问题就是:在views.py中的user_logout()中调用了django.contrib.auth.logout,此处的代码是没有问题的,问题出在urls.py中对应的path上,本应是调用views.user_logout,但因为之前忘记修改而调用了views.logout。恩,就这样

 4. 关于django.contrib.auth.decorators.login_required的参数:redirect_filed_name与login_url,二者的区别在于前者只是作为一个参数,后者作为一个请求,会到urls.py中查找对应的path然后执行对应的views.py中的函数。详细用法见django官方文档

 5. object has no attribute 'cleaned_data :问题出在没有对 xxx_form = XxxForm(request.POST) 对象执行 if xxx_form.is_valid(),所以在xxx_form.cleaned_data['field']时会报错

 6. 'getattr(): attribute name must be string' error in admin panel for a model with an ImageField: 该问题是由models.py中的ImageField字段引起的。在项目中的User类中,字段代码:

 head_img = models.ImageField(verbose_name='头像', width_field=70, height_field=70, upload_to='users/', blank=True, null=True) 

中,如果在后台admin上传图片时会报错。详细问题解决请看'getattr(): attribute name must be string' error in admin panel for a model with an ImageField

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄