Django-Ajax:表单提交

时间:2015-10-03 12:25:22

标签: jquery ajax django django-forms

表单提交时遇到问题:

我的脚本JS:

function submit_form(){
    var form = $("#theform").serializeArray();
    var the_players = document.getElementsByName("theplayers");
    var tab_players = [];
    for(variable of the_players){
        var name = variable.id.split("_")[1];
        tab_players.push(variable.value);
        }

    // *** I send a tab and THE FORM ***
   $.post("/myview_players",{"theplayers[]": tab_players,"form[]":form}).done(function(data){window.location.reload();}); 

   return false;
}

视图(网址:' myview_players'):

...
if request.method == "POST":    
    requete = request.POST
    if requete.is_ajax() :
        form = playersForm(requete.get("form"))

        if form.is_valid() :
            print("Valid ! ")
        else :
            print("Not valid...")
        ...

我将参数传递给了由Ajax发送的一个表格的playerForm juste。 在终端中,消息"无效"显示... 为什么?

2 个答案:

答案 0 :(得分:0)

在您的视图中更改请求请求。拼写检查?

另外,在$ .post中,如果你以" form []":form传递,那么视图就会有一个列表。 尝试做"表单":表单

答案 1 :(得分:0)

经过多次研究,我找到了解决方案:

form_data = parse_qs(request.POST['form'].encode('ASCII')) 
query = QueryDict(request.POST['form'])
form = playersForm(query)

当我这样做时:form.cleaned_data ['name_of_field']

您怎么看? 这是一个很好的解决方案吗?