如何传递javascript函数';对Django视图有什么价值?

如何传递javascript函数';对Django视图有什么价值?,javascript,python,django,Javascript,Python,Django,在模板中,我有如下代码: <div id="form"> <form name="myForm" action="Http://localhost:8000/student/student_add_course/" onclick="return addTable();" method="post"> {% csrf_token %} {{ form.non_field_errors }}

在模板中,我有如下代码:

<div id="form">
        <form name="myForm"  action="Http://localhost:8000/student/student_add_course/" onclick="return addTable();" method="post">
        {% csrf_token %}
        {{ form.non_field_errors }}
                <div id="form-data">
                {{ form.course_id }}{{ form.course_id.errors }}
                <label for="id_course_id">:Course Id number:</label><br>

                {{ form.score }}{{ form.score.errors }}
                <label for="id_score">Course score:</label><br>
               <p><input type="button" value="add" /></p>
                <p><input type="submit" value="submit" /></p>
                </div>
        </form>
    </div>

    <div id="table">
    <table id="TABLE" border = '1'>
    <tr>
        <th>id number</th>
        <th>score</th>
    </tr>
    <tr>
        <td id="id_number"></td>
        <td id="score"></td>
    </tr>

{%csrf_令牌%}
{{form.non_field_errors}}
{{form.course\u id}{{form.course\u id.errors}}
:课程Id号:
{{form.score}{{form.score.errors} 课程分数:

身份证号码 分数
这是“脚本”部分:


var stock=新数组();
var i=0;
函数addTable(){
var id=document.forms[“myForm”][“课程id”]。值;
var分数=document.forms[“myForm”][“score”].value;
stock[i]=新数组(id,score);
//从html代码中获取显示所选课程的表
var table=document.getElementById('table');
//将id和分数添加到html代码内的表的行中。
if(document.getElementById(“id_编号”).innerHTML==“document.getElementById(“score”).innerHTML==”)
{document.getElementById(“id_number”).innerHTML=id;
document.getElementById(“score”).innerHTML=score;}
//创建表行并将其附加到上表的末尾
else{var tr=document.createElement('tr');
对于(j=0;j<2;j++){
var td=document.createElement('td')
td.appendChild(document.createTextNode(stock[i][j]);
tr.D.儿童(td)
}
表1.儿童(tr);
}
i=i+1;
退货;
}
我想为选中的学生添加一些新课程,为了完成这项工作,我创建了一张表格,表格中有课程ID号和课程分数。首先,当我填写表格时,当我点击“添加”按钮时,javascript创建了表格,我可以添加许多课程,然后当我提交给视图部分中的其他步骤并将所有课程保存在数据库中时。 我有点问题,如果有人帮助我,我会很高兴的

1) 如何将“stock”数组(javaScript中的全局数组,包括已创建表中的所有课程)发送到Django视图

2) 按下“添加”按钮后如何清洁表单


我很抱歉我的英语不好

Hi将数据发送回服务器的诀窍是将POST请求发送回服务器

我将以JQuery为例来做这件事(因为它更快更容易)

然后,您必须调整应用程序的URL.py以匹配您的postendpoint,并将其指向正确的视图(例如)

##urls.py
urlpatterns = [
    url(r'^postendpoint/$', views.YourViewsHere),
    ....
] 
最后,在视图中,您可以像这样访问post数据

##views.py
def YourViewsHere(request):
   if request.method == 'GET':
       do_something()
   elif request.method == 'POST':
       ## access you data by playing around with the request.POST object
       request.POST.get('data')
由于您可以请求一个python对象,所以可以查看许多属性和方法

有关更多信息,请查看

1) Django请求-响应 2) Django Ajax示例:

请注意,您将不得不使用我提供给您的代码。我认为这将是从那里学习的最好方式


我希望您觉得这很有用

试试看,或者jqery ajax使用ajax!这里的更多信息:非常感谢你的回答,我认为这很有帮助,但我不知道JQuery,首先,我想我必须学习它:)谢谢。你能接受我的答案作为正确答案吗?Cheers=)您可以选择不使用JQuery,而在post调用中使用vanilla javascript,但概念是相同的。记住在javascript中将数据添加到请求中,并通过访问请求对象从django中访问数据
##urls.py
urlpatterns = [
    url(r'^postendpoint/$', views.YourViewsHere),
    ....
] 
##views.py
def YourViewsHere(request):
   if request.method == 'GET':
       do_something()
   elif request.method == 'POST':
       ## access you data by playing around with the request.POST object
       request.POST.get('data')