我正在学习django,并且正在创建一个应用程序,可以根据学生的姓名和注册号在特定班级注册他们。因此,我创建了一个应用程序,用户可以在其中添加表单元素,用户可以在其中添加选项以将不同的学生直接直接添加到表单中。因此,用户可以同时确定他想添加的学生人数,并通过他们的姓名和注册号码添加学生。我创建了以下表单:
<form method="post" action="/add_rules/">
{% csrf_token %}
<div class="field_wrapper">
<div>
<label>Enter Name</label>
<input type="text" name="personname">
<label>Enter registration number</label>
<input type="text" name="personregnumber">
<a href="javascript:void(0)" class="addPerson">Add</a>
<br><br>
</div>
</div>
<button type="submit">Submit</button>
</form>
添加和删除输入字段的相应javascript是:
$(document).ready(function () {
var addButton = $('.addPerson');
var wrapper = $('.field_wrapper');
var field_html = '<div><label>Enter name</label><input type="text" name="personname"><label>Enter registration number</label><input type="text" name="personregnumber"><a href="javascript:void(0)" class="remove_button">Remove</a><br><br></div>'
$(addButton).click(function() {
$(wrapper).append(field_html);
})
$(wrapper).on('click', '.remove_button', function(e) {
e.preventDefault();
$(this).parent('div').remove();
})
})
我被困在如何将多个学生数据字段同时添加到数据库中?如果有人可以帮助,那就太好了。
很明显,当我必须一次将表单中的数据添加到数据库中时,可以通过以下代码来做到这一点:
view.py:
def add_student(request):
personname = request.POST["personname"]
personregnumber = request.POST["personregnumber"]
given_student = Student(personname=personname,personregnumber=personregnumber)
given_student.save()
return render(request, 'student/studentregistered.html')
models.py所在的位置:
class Student(models.Model):
personname = models.CharField(max_length=100)
personregnumber = models.CharField(max_length=100)
def __str__(self):
return self.personname
如您在上面看到的那样,该代码可以完美地一次添加一个学生的详细信息,但是当我单击“添加”以便一次添加多个学生时,以上代码失败。谁能告诉我如何同时在数据库中保存多个学生?
答案 0 :(得分:0)
除非您从后端提供一些逻辑或代码,否则我无法透露有关后端的详细信息。但是,作为解决方案,在网络世界中拥有此类表单的做法是使用my_list[]
之类的名称作为表单输入元素和...
您可以这样访问发布列表(例如,在查看功能中):
request.POST.getlist('my_list[]')
请注意,关于this问题,无法简单地使用request.POST['my_list[]']
来检索列表,因为他们说这是一个功能(!?)。