POST请求查看功能

时间:2015-11-30 07:49:22

标签: python django post

我想发送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'),

1 个答案:

答案 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})