Ajax传值到后台出错,提示.MultiValueDictKeyError: "'column_id'",求解,在线等

shurychen 2017-04-17 03:42:35
从前端想通过Ajax把column_id的值传到后台,但是django通过request.post()获取时却抛出了MultiValueDictKeyError: "'column_id'",alert(column_id)这句执行了,但是看不出是错在Ajax还是后台代码

html传值函数:
function publish_article(){
var column_id=$("#which_column").val();
alert(column_id);
var title=$("#id_title").val();
var column_id=$("#which_column").val();
var body=$("#id_body").val();
$.ajax({
url:"{% url 'article:article_post'%}",
type: "POST",
data: {title:"title",column_id:"column_id",body:"body",},
success:funciton(e){
if(e=="1")
layer.msg("post successfully");
} else if (e==2) {
layer.msg("sorry,post failued");
}else{
layer.msg("有项目没填写?都必须填,不为空。");
}

},
});

}
后台代码:
login_required(login_url='account/login')
@csrf_exempt
def article_post(request):
if request.method=="POST":
post_form=ArticlePostForm(data=request.POST)
if post_form.is_valid():
#cd=post_form.cleaned_data
#try:

new_article=post_form.save(commit=False)
new_article.author=request.user
new_article.column=request.user.article_column.get(id=request.POST['column_id'])
new_article.save()
return HttpResponse("succeed")
#except:
#return HttpResponse("error")
else:
return HttpResponse("error2")

else:
post_form=ArticlePostForm()
article_columns=request.user.article_column.all()
return render(request,"article/article_post.html",{"post_form":post_form,"article_columns":article_column}
给位路过的大神帮帮忙,在线等,
...全文
480 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shurychen 2017-04-18
  • 打赏
  • 举报
回复
忘记结贴 了,主要原因是url写错了,改成这样就对了url:'{% url "article:article_post" %}', 有些问题重启电脑后就解决了,不知道是不是电脑太卡的原因。
shurychen 2017-04-17
  • 打赏
  • 举报
回复
引用 4 楼 sinat_28984567 的回复:
[quote=引用 3 楼 shurychen 的回复:] [quote=引用 2 楼 sinat_28984567 的回复:] column_id应该是个整数吧?传到后台的是不是字符串?
错误页面的post信息是这样的: Variable Value title '测试' csrfmiddlewaretoken 'kJfdAyDW0kJyR9NHQyzZmEhiUItHCSHj0r6aiqbkUGJcKpY4NUeDnkuxni1kNLFA' body '地方 是不是Ajax中column_id没有提交[/quote] 不对啊,应该是提交这三个 title column_id body csrfmiddlewaretoken 是这个什么?[/quote] django中防网站攻击的一个插件的信息,django中设置这个插件的作用是防止CSRF攻击
二月十六 2017-04-17
  • 打赏
  • 举报
回复
引用 3 楼 shurychen 的回复:
[quote=引用 2 楼 sinat_28984567 的回复:] column_id应该是个整数吧?传到后台的是不是字符串?
错误页面的post信息是这样的: Variable Value title '测试' csrfmiddlewaretoken 'kJfdAyDW0kJyR9NHQyzZmEhiUItHCSHj0r6aiqbkUGJcKpY4NUeDnkuxni1kNLFA' body '地方 是不是Ajax中column_id没有提交[/quote] 不对啊,应该是提交这三个 title column_id body csrfmiddlewaretoken 是这个什么?
shurychen 2017-04-17
  • 打赏
  • 举报
回复


引用 2 楼 sinat_28984567 的回复:
column_id应该是个整数吧?传到后台的是不是字符串?

错误页面的post信息是这样的:
Variable Value
title '测试'
csrfmiddlewaretoken 'kJfdAyDW0kJyR9NHQyzZmEhiUItHCSHj0r6aiqbkUGJcKpY4NUeDnkuxni1kNLFA'
body '地方
是不是Ajax中column_id没有提交
二月十六 2017-04-17
  • 打赏
  • 举报
回复
column_id应该是个整数吧?传到后台的是不是字符串?
shurychen 2017-04-17
  • 打赏
  • 举报
回复
有谁遇到这样的问题吗,根据django文档的说法是出现这个问题是没有获取到key的值时就抛出这样的错误,但是我的Ajax中有提交column_id,为什么获取不到,请问错在哪了,真不知道错哪,各位帮忙看看

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧