1、找不到模板,即使在setting.py添加了TEMPLATE_DIRS选项,也重启了django.最终还是报无法找到模板。如图:
解决方法:
注释掉setting.py文件里django系统自动生成的 TEMPLATES,然后再重启django. 就可以正常访问了。
2、错误:CSRF verification failed. Request aborted.如图
解决办法:
1、在表单里添加{%csrf_token%}
<form action="/books/contact/" method="post"> {% csrf_token %} <--------------------------------------新加入的 <p>Subject: <input type="text" name="subject"></p> <p>Your e-mail: (optional): <input type="text" name="email"></p> <p>Message: <textarea name="message" rows="10" cols="50"></textarea></p> <input type="submit" value="Submit"> </form>
还需要最后一步在view文件中加入装饰器@csrf_exempt如下:
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def contact(request):
........
问题解决。
因为django之所以引进CSRF是为了避免 Cross Site Request Forgeries ***,而上面的解决方法恰好禁止掉这个django的功能。
3、
CommandError: App 'books' has migrations. Only the sqlmigrate and sqlflush commands can be used when an app has migrations.
这句话的意思是App 'books'被改动了,只能使用sqlmigrate和sqlflush命令,而不能新建数据表。
解决方法:删除app对应文件夹下的migrations子文件夹即可。
4、
Ajax对Django Post请求出错(500,403)
解决方法:
1、在view.py文件加导入模块
from django.views.decorators.csrf import csrf_exempt
2、然后在函数前加入 @csrf_exempt
3、在Ajax请求的url路径里必须以"/"结束,否则报错。譬如:
$.ajax({
type:'POST',
url:'/add/',
data:{
url:"123",
},
}
转载于:https://blog.51cto.com/smileyouth/1675482