def add_employee_old(request):
if request.method == "POST":
name = request.POST.get("name")
email = request.POST.get("email")
dep = request.POST.get("dep")
info = request.POST.get("info")
salary = request.POST.get("salary")
#取得多个值
groups = request.POST.getlist("group")
new_emp = employee.objects.create(name = name,email = email,salary = salary,dep_id = dep,info_id = info)
#给多对多键字段赋值
new_emp.group.set(groups)
return redirect('/test_orm_old/list_employee_old/')
dep_list = department.objects.all()
group_list = group.objects.all()
info_list = employeeinfo.objects.all()
return render(request,'test_orm_old/add_employee_old.html',{'dep_list':dep_list,'group_list':group_list,'info_list':info_list})
add_employee_old.html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>增加</title>
</head>
<body>
<div align="center">
<h1>增加员工</h1>
<hr>
<form action="/test_orm_old/add_employee_old/" method="post">
{% csrf_token %}
<div>
<label>姓名:</label><input type="text" name="name" id="name">
</div>
<br>
<div>
<label>邮箱:</label><input type="text" name="email" id="email">
</div>
<br>
<div>
<label>薪水:</label><input type="text" name="salary" id="salary">
</div>
<br>
<div>
<label>联系信息:</label>
<select name="info" id="info">
{% for info in info_list %}
<option value="{{ info.id }}">{{ info.phone }}||{{ info.address }}</option>
{% endfor %}
</select>
</div>
<br>
<div>
<label>部门:</label>
<select name="dep" id="dep">
{% for dep in dep_list %}
<option value="{{ dep.id }}">{{ dep.dep_name }}</option>
{% endfor %}
</select>
</div>
<br>
<div>
<label>团体:</label>
<!-- 字段group是多对多键,设置<select>标签属性multiple="true",允许多选 -->
<select name="group" id="group" multiple="true">
{% for group in group_list %}
<option value="{{ group.id }}">{{ group.group_name }}</option>
{% endfor %}
</select>
</div>
<br>
<div><input type="submit" value="增加"></div>
</form>
</div>
</body>
</html>
点击保存后报错如下:
IntegrityError at /test_orm_old/add_employee_old/
(1062, "Duplicate entry '4' for key 'employee_employee.info_id'")
Request Method: POST
1062, "Duplicate entry '4' for key 'employee_employee.info_id'" 这句话的意思是主键重复l 你输入5 试试看报错不
1062, "Duplicate entry '4' for key 'employee_employee.info_id'" 这句话的意思是主键重复l 你输入5 试试看报错不