Django插入数据(获取正确的数据)

Django插入数据(获取正确的数据),django,Django,我的html中有这段代码 <form method="post" id="DogForm" action="/studentbehavior/" class="myform" style="width: 100%" enctype="multipart/form-data">{% csrf_token %} <table class="tblcore"> <input type="hidden" value="{{teacher}}" name="

我的html中有这段代码

<form method="post" id="DogForm" action="/studentbehavior/"  class="myform" style="width: 100%" enctype="multipart/form-data">{% csrf_token %}
    <table class="tblcore">
    <input type="hidden" value="{{teacher}}" name="teacher">
        <tr>
            <td rowspan="2" colspan="2">Core Values</td>
            {% for core in corevalues %}
                <td colspan="8"><input type="hidden" value="{{core.id}}" name="core">{{core.Description}}</td>
            {% endfor %}
        </tr>
        <tr>
            {% for corevalues in corevaluesperiod %}
                <td colspan="4" style="font-size: 12px"><input type="hidden" value="{{corevalues.id}}" name="coredescription">{{corevalues.Description}}</td>
            {% endfor %}
        </tr>
        <tr>
            <td colspan="2">Student's Name</td>
            {% for corevalues in period %}
            <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="coreperiod">Q {{corevalues.id}}
            </td>
                        <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="coreperiod">Q {{corevalues.id}}
            </td>
                        <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="coreperiod">Q {{corevalues.id}}
            </td>
                        <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="coreperiod">Q {{corevalues.id}}
            </td>
                        <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="coreperiod">Q {{corevalues.id}}
            </td>
                        <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="coreperiod">Q {{corevalues.id}}
            </td>
                        <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="coreperiod">Q {{corevalues.id}}
            </td>
        {% endfor %}
        </tr>
        {% for students in student %}
        <tr>
            <td colspan="2" class="names"><input type="hidden" value="{{students.id}}" name="student">{{students.Students_Enrollment_Records.Students_Enrollment_Records.Students_Enrollment_Records.Student_Users}}</td>
            <td colspan="4">
                <select name="marking">
                    <option>--------</option>
                    {% for m in marking %}
                        <option value="{{m.Marking}}" >{{m.Marking}}</option>
                    {% endfor %}
                </select>
            </td>
            <td colspan="4">
                <select  name="marking">
                    <option  >--------</option>
                    {% for m in marking %}
                        <option value="{{m.Marking}}">{{m.Marking}}</option>
                    {% endfor %}
                </select>
            </td>
            <td colspan="4">
                <select  name="marking">
                    <option>--------</option>
                    {% for m in marking %}
                        <option value="{{m.Marking}}">{{m.Marking}}</option>
                    {% endfor %}
                </select>
            </td>
            <td colspan="4">
                <select  name="marking">
                    <option>--------</option>
                    {% for m in marking %}
                        <option value="{{m.Marking}}">{{m.Marking}}</option>
                    {% endfor %}
                </select>
            </td>
            <td colspan="4">
                <select name="marking">
                    <option>--------</option>
                    {% for m in marking %}
                        <option value="{{m.Marking}}">{{m.Marking}}</option>
                    {% endfor %}
                </select>
            </td>
            <td colspan="4">
                <select name="marking">
                    <option>--------</option>
                    {% for m in marking %}
                        <option value="{{m.Marking}}">{{m.Marking}}</option>
                    {% endfor %}
                </select>
            </td>
            <td colspan="4">
                <select name="marking">
                    <option>--------</option>
                    {% for m in marking %}
                        <option value="{{m.Marking}}">{{m.Marking}}</option>
                    {% endfor %}
                </select>
            </td>
        </tr>
        {% endfor %}
    </table>
    <input type="submit" value="Insert" id="submit">
</form>
这是我的问题,保存到datavase的所有标记,即使我在选择框(在管理视图中)中仅选择一个标记,看起来数据库中输入的数据不正确

这是我渴望的答案

更新

当我试着回答mr@SaisivaA

for m, student, desc in zip(request.POST.getlist('marking'), request.POST.getlist('student'),
                             request.POST.getlist('coredescription')):
    coredescription = CoreValuesDescription(id=desc)
    students = StudentPeriodSummary(id=student)
    V_insert_data = StudentsCoreValuesDescription(
        Teacher=teacher,
        Core_Values=coredescription,
        Marking=m,
        Students_Enrollment_Records=students,
        grading_Period=coreperiod,
    )
    V_insert_data.save()
这是我输入的数据

这是我在我的管理网站收到的结果

更新

我为每个学生和每个核心价值观选择一个分数,然后将所有数据发送回服务器

如果我想这样输入

在我的数据库中插入的结果如下

当我尝试将此添加到我的视图时,请再次更新

for markingID in request.POST.getlist('marking'):
    marking.append(markingID)


print(marking[m])
错误是


列表索引必须是整数或片,而不是str

只需修改以下格式的代码即可

for m, students, desc in zip(request.Post.getlist('marking'), request.Post.getlist('student'), request.Post.getlist('coredescription')):
     V_insert_data = StudentsCoreValuesDescription(
                    Teacher=teacher,
                    Core_Values=coredescription,
                    Marking=m,
                    Students_Enrollment_Records=students,
                    grading_Period=coreperiod,
                )
                V_insert_data.save()
        return render(request, "Homepage/updatebehavior.html")
试试这个

    marking = []
    for markingID in request.POST.getlist('Marking'):
        marking.append(markingID)

    for i, mark in enumerate(request.POST.getlist('Marking')):
        s = StudentBehaviorMarking(id=mark)
        core = corevalues[i]
        cores = EducationLevelGradingBehavior(id=core)
        print("mark", mark, "per description", core)
        for student in request.POST.getlist('student'):
            students = StudentPeriodSummary(id=student)
            V_insert_data = StudentsBehaviorGrades(
                Teacher=teacher,
                # Education_Levels
                Students_Enrollment_Records=students,
                Grading_Period=coreperiod,
                Grading_Behavior=cores,
                Marking=s,
            )
            V_insert_data.save()

您如何保存这些数据?您是否为每个学生和每个核心价值观选择一个分数,然后将所有数据发送回服务器?你如何知道哪个分数代表哪个学生,哪个分数代表什么核心价值观?在我看来,你只是在循环所有分数、所有学生、所有核心价值观,然后更新它们。没有证据表明这个标记是给这个学生的。我在学生循环上循环标记,是@crimson589我该怎么做才能正确?以一种恰当的方式,请帮助我sirWell目前你只是得到了你所有的东西的列表,你的数据中没有结构。我会首先尝试使用javascript在html页面中构建json对象。类似于
[{StudentID1:{CoreID1:Mark,CoreID2:Mark}},{StudentID2:{CoreID1:Mark,CoreID2:Mark}}]
。通过这种方式,您可以在视图中循环此对象,并将每个学生更新为1乘1。您可以给出如何执行此操作的示例吗?我不明白,我也不知道怎么做。。。很抱歉,我现在无法访问开发PC来尝试一些代码。如果您愿意使用jquery,基本逻辑是首先循环每个学生隐藏的输入,这就是您将获得
{StudentID1:
。然后循环通过每个核心值id和它们的标记。它保存所有记录,它仍然是相同的修改签出-@justini获取此错误“”“WSGIRequest”对象没有属性“post”“哦,它的大写字母是P-request。Post-justin请检查我的问题,先生
    marking = []
    for markingID in request.POST.getlist('Marking'):
        marking.append(markingID)

    for i, mark in enumerate(request.POST.getlist('Marking')):
        s = StudentBehaviorMarking(id=mark)
        core = corevalues[i]
        cores = EducationLevelGradingBehavior(id=core)
        print("mark", mark, "per description", core)
        for student in request.POST.getlist('student'):
            students = StudentPeriodSummary(id=student)
            V_insert_data = StudentsBehaviorGrades(
                Teacher=teacher,
                # Education_Levels
                Students_Enrollment_Records=students,
                Grading_Period=coreperiod,
                Grading_Behavior=cores,
                Marking=s,
            )
            V_insert_data.save()