我有一个表单,用于将缺席者的姓名提交给数据库。我试图通过request.POST.get将名称传递给views.py。但是,它一起传递了名称,但没有一起传递,也没有保存到数据库。
下面是我的代码:
views.py
def AbsentStudent(request, id=None):
wk = LabDuration.objects.get(sDate=today)
wk1 = MarkAtt.objects.filter(currentDate=today)
if wk.sDate == today.date() and wk1 == today.date():
wk2 = wk1.week
if wk2 == wk1.week:
q1 = Namelist.objects.filter(classGrp=id).values('name')
q2 = MarkAtt.objects.all().values('studName__name')
q3 = q1.difference(q2)
else:
q1 = Namelist.objects.filter(classGrp=id).values('name')
q2 = MarkAtt.objects.all().values('studName__name')
q3 = q1.difference(q2)
form_class = studStatus
form = form_class(request.POST)
if request.method == 'POST':
if form.is_valid():
a = form.save(commit=False)
a.studName__name = request.POST.get("sname") //does not submit into database
form.save()
return redirect('editStudStatus',id)
else:
form = form = studStatus(request.POST )
context = {
'form' : form,
'q3':q3
}
return render(request,'studDetails.html',context, {'form':form})
模板:
<tbody>
{% for q in q3 %}
<tr>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<td><input type="text" name="sname" values="{{q.name}}">{{q.name}}
<td>{{form.status }}</td>
<td>{{form.remarks}}</td>
<td><button type ="submit" class="btn btn-outline-success" >Submit</button>
</form></td>
</tr>
{% endfor %}
</tbody>
答案 0 :(得分:0)
使用commit=False
保存将为您提供一个模型对象,然后您可以添加额外的数据并将其保存。
因此,您需要将form.save()
更改为a.save()