Python 如何在Django中创建多个条目?

Python 如何在Django中创建多个条目?,python,arrays,django,Python,Arrays,Django,我正在尝试建立一个评分系统。我有一个叫做Score的班级,列出了所有学生的分数 class Score(Base): student = models.ForeignKey(Usr, limit_choices_to={'user_type': 'Student'}, related_name='scored') subject = models.ForeignKey(Subject) teacher = models.ForeignKey(Usr, limit_choi

我正在尝试建立一个评分系统。我有一个叫做
Score
的班级,列出了所有学生的分数

class Score(Base):
    student = models.ForeignKey(Usr, limit_choices_to={'user_type': 'Student'}, related_name='scored')
    subject = models.ForeignKey(Subject)
    teacher = models.ForeignKey(Usr, limit_choices_to={'user_type': 'Teacher'}, related_name='marked')
    exam = models.CharField(max_length=50)
    exam_date = models.DateField()
    score = models.IntegerField()
    out_of = models.IntegerField()
def Edit(request, pk):
    this_klass = Klass.objects.get(id=pk)
    student_list = this_klass.kara_pore.all()
    subject_list = request.user.teaches.subject.all
    return render(request, "grades/edit.html", {'student_list': student_list, 'subject_list': subject_list})
该视图当前传递两个对象,
student\u list
subject\u list
,其中包含特定班级的学生人数和登录教师的科目数量。这将允许他选择为该特定学生群体评分的科目

class Score(Base):
    student = models.ForeignKey(Usr, limit_choices_to={'user_type': 'Student'}, related_name='scored')
    subject = models.ForeignKey(Subject)
    teacher = models.ForeignKey(Usr, limit_choices_to={'user_type': 'Teacher'}, related_name='marked')
    exam = models.CharField(max_length=50)
    exam_date = models.DateField()
    score = models.IntegerField()
    out_of = models.IntegerField()
def Edit(request, pk):
    this_klass = Klass.objects.get(id=pk)
    student_list = this_klass.kara_pore.all()
    subject_list = request.user.teaches.subject.all
    return render(request, "grades/edit.html", {'student_list': student_list, 'subject_list': subject_list})
该模板显示一个表,其中最左边的列有学生列表,然后下一列有用于提交成绩的文本字段。我将文本字段命名为相应学生的
id
,希望这能帮助我在保存分数时引用它们

{% extends "base.html" %}

{% block body %}
<form method="POST" action="process/"> {%  csrf_token %}
    <select name="sub">
    {% for subject in subject_list %}
        <option value="{{ subject }}">{{ subject }}</option>
    {% endfor %}
    </select>
<br/>
    {% for student in student_list %}
        {{ student }}<input type="text" name="{{ student.student_id}}"/> <br/>
    {% endfor %}

    <input type="submit" value="Submit"/>
</form>
{% endblock %}
{%extends“base.html”%}
{%block body%}
{%csrf_令牌%}
{主题列表%中的主题的百分比}
{{subject}}
{%endfor%}

{student_list%中的学生的百分比} {{student}}
{%endfor%} {%endblock%}

我目前不知道如何处理分数输入并将其保存在
Score
表中,以参考特定学生。到目前为止,我在Django只保存了一行。更具体地说,我是否以错误的方式保存数据?我必须使用数组来解决这类问题吗?

有很多方法可以解决这类问题。例如,您可以简单地在视图中处理html表单,在视图中手动创建或更新所有ORM实例

不过我相信,好好阅读一下Django和他的作品对你来说是非常有益的。通过在分数模型和任何其他模型上使用modelform,可以轻松完成上述任务


还解释了如何在一个post请求中处理多个django表单。

以下是我在diagnose_应用程序中处理表格的代码,相信它会对您有所帮助

#get the distinct time, blade and counts name info
def gettableinfo(request,tablename):
    tableinfo={}
    datedis=[]
    bladedis = []
    counts = []
    if request.is_ajax():
        if request.method=='GET':
            for m in get_models(get_app('diagnose_app'), include_auto_created=True):
                if m._meta.db_table == request.GET.get('tablename'):
                    for bd in m.objects.values('STATION_ID').distinct():
                        bladedis.append(bd['STATION_ID'])
                    for dt in m.objects.values('Day','Time').distinct():
                        datedis.append(dt['Day'].isoformat()+' '+dt['Time'].isoformat())
                    for ct in m._meta.get_all_field_names():
                        if ct.isupper():
                            counts.append(ct)

                    #tableinfo.append(m._meta.get_field('Blade'))
                    tableinfo['tablename'] = request.GET.get('tablename')
                    tableinfo['blades'] = bladedis
                    tableinfo['times'] = datedis
                    tableinfo['counts'] = counts
                    #tableinfo=tableinfo.append('abcde')
                    #table_info_json=json.dumps(tableinfo)
                    table_info_json=json.dumps(tableinfo)
    return HttpResponse(table_info_json,content_type="application/json") 

如果我使用模型表单,它是否会为我提供一个表单,让我为一个学生填写一个条目?对于用户来说,这将是一项乏味的工作,因为他必须为每个条目选择班级、科目、学生和分数。我在想,有人可以一次输入所有学生的分数,在html表单中填写分数栏,然后点击提交按钮。这将在类、主题等的多行中插入数据。数据将是常量,但基于文本字段名称,学生id将不同。这有什么意义吗-/那么,您可以提供默认值,只更新重要的字段。你不知道;我们不必只遵循基本的例子。