Django窗体不将数据传播到服务器sid

2024-06-06 04:45:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我的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)

Tags: textformiduireturnifresponserequest
3条回答

你的表格应该是这样的

<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表单,那么就不需要再次定义字段。您可以在django字段上调用datepicker。将有id开始日期和id结束日期。你可以在上面应用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>

相关问题 更多 >