Django表单不会将数据传播到服务器端



我有一个模板在我的Django项目中使用HTML和javascript的组合。模板由两个日期和一个文本字段组成。我正试图将其发送到服务器端,但收效甚微。谁能告诉我。

模板:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script type="text/javascript">
   $(function() {
   $( "#datepicker" ).datepicker();
   });
   $(function() {
   $( "#datepicker2" ).datepicker();
    });
   $(document).ready(
   function()
   {
        $('#myform').ajaxForm({
                    beforeSubmit: function(arr, $form, options)
                    {
                        var field=$('#datepicker').val();
                        if (field!=null)
                        {
                            $('#my_form').ajaxStart( function()
                            { alert('loading'); });
                            return true;
                        }
                        else
                        {
                            alert
                            return false;
                        }
                    },
                    success: function(response)
                    {                            
                    }
                });
  }
);
</script>
</head>
<body>
    <p>Date: <input type="text" id="datepicker"></p>
    <p>Date: <input type="text" id="datepicker2"></p>
    <p>Date: <input type="text" id="my_form"></p>
    <form action="" method="post" id="myform">{% csrf_token %}
    {{ myform.as_p }}
    <input type="submit" name="submit" value="SUBMIT" id="submit" />
    </form>
</body>
</html>

视图:

def index(request):
    template = 'my_site/index.html'
    if request.is_ajax():
    if request.method == 'POST':
        post = request.POST 
        my_form = GraphForm(request.POST)
        if my_form.is_valid():
            new = my_form.save(commit=True)
            response = { 'status':True, }
        else:
            response = {'status': str(my_form) }
        json = simplejson.dumps(response, ensure_ascii=False)
        return HttpResponse(json, content_type="application/json")
    context = {'my_form':my_form}
    return render_to_response(template, context, context_instance=RequestContext(request))
else:
    form = GraphForm()
    return render(request,"my_site/index.html", { 'form' : form } )

形式:

class GraphForm(forms.Form):
    my_form = forms.CharField(label = 'my_form',max_length=100)
    start_date = forms.DateField(required=True)
    end_date = forms.DateField(required=True)

您的表单应该是这样的

<body>
    <form action="" method="post" id="myform">{% csrf_token %}
        {{ myform.as_p }}
        <p>Date: <input type="text" id="datepicker"></p>
        <p>Date: <input type="text" id="datepicker2"></p>
        <p>Date: <input type="text" id="my_form"></p>
        <input type="submit" name="submit" value="SUBMIT" id="submit" />
    </form>
</body>

您的输入字段:

<p>Date: <input type="text" id="datepicker"></p>
<p>Date: <input type="text" id="datepicker2"></p>
<p>Date: <input type="text" id="my_form"></p>

不在表单中,所以当提交表单时,这些内容不会包含在表单中。如果你使用的是django form,那么你就不需要再定义字段了。你可以在django字段中调用datepicker。id将是id_start_date和id_end_date。你可以在上面应用datepicker$("#id_start_date").datepicker();$("#id_date_end").datepicker();

您的操作URL未设置。POST数据将去哪里?

<body>
    <form action="." method="post" id="myform">
        {% csrf_token %}
        {{ myform.as_p }}
        <p>Date: <input type="text" id="datepicker"></p>
        <p>Date: <input type="text" id="datepicker2"></p>
        <p>Date: <input type="text" id="my_form"></p>
        <input type="submit" name="submit" value="SUBMIT" id="submit" />
    </form>
</body>

最新更新