我想发送POST请求查看功能。现在我得到500错误。我无法弄清楚问题出在哪里。视图函数正在接收POST请求但不返回任何数据。
编辑:现在500问题已解决。但是我应该如何返回编辑对象的表单?
模板:
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
function editParticipant(event_id, row_id){
var postdata = {
'csrfmiddlewaretoken': csrftoken
}
$.post( "/edit-participant-" + event_id + "/", postdata, function( data ) {
console.log(data);
});
}
查看:
def edit_participant(request, participant_id):
participant = Participant.objects.get(pk=participant_id)
form = RegisterToEvent(request.POST or None, instance = participant)
if form.is_valid():
form.save()
return HttpResponseRedirect('/event-%s' %2)
data = {'form': form}
return JsonResponse(data)
URL:
url(r'^edit-participant-(?P<participant_id>[0-9]+)/$', 'event.views.edit_participant', name='edit_participant'),
答案 0 :(得分:1)
您的观点未返回回复
def edit_participant(request, participant_id):
return JsonResponse({'data':"Test"})
您还应该通过将DEBUG
设置为true来启用设置中的调试,它会准确地告诉您错误是什么,只需记住在生产之前关闭它。您还可以实现错误记录。
这个函数没有任何需要使用ajax请求的东西。如果您希望在表单无效时保留相同的页面,那么只需返回表单错误并对其执行某些操作
data = { 'errors': form.errors }
但是当你可以用表单再次加载页面并让django通过表单渲染为你做这件事时,这对我来说没有多大意义。
return render(request, 'yourhtml.html', {form: form})