Я работаю над грубой операцией, которая соответствует нескольким пользователям. Всякий раз, когда я нажимаю на функцию обновления, новая запись добавляется без изменения существующей. Может ли кто-нибудь помочь мне с этим?
models.py
class Employee(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,related_name="employee",null=True,blank=True)
name = models.CharField(max_length=100)
contact = models.CharField(max_length=15)
designation = models.ForeignKey(Designation,on_delete=models.CASCADE,null=True,blank=True)
views.py
def employee_form(request,id=0):
if request.method == 'GET':
if id == 0:
# req = request.user.designation
form = EmployeeForm(request)
else:
employee = Employee.objects.get(pk=id)
if employee in request.user.employee.all():
form = EmployeeForm(request,instance=employee)
else:
return redirect('/emp')
return render(request,'employee-form.html',{'form':form})
else:
if id==0:
form = EmployeeForm(request,request.POST)
if form.is_valid():
print("Im passed")
name = form.cleaned_data["name"]
contact = form.cleaned_data["contact"]
designation = form.cleaned_data["designation"]
t = Employee(name=name,contact=contact,designation=designation)
t.save()
request.user.employee.add(t)
else:
employee = Employee.objects.get(pk=id)
if employee in request.user.employee.all():
form = EmployeeForm(request,request.POST,instance=employee)
if form.is_valid():
print("Im passed")
name = form.cleaned_data["name"]
contact = form.cleaned_data["contact"]
designation = form.cleaned_data["designation"]
t = Employee(name=name,contact=contact,designation=designation)
t.save()
request.user.employee.add(t)
return redirect('/emp')
Я в значительной степени понимаю, что это создает новый запись из-за request.user.employee.add () Я пытался сделать это update (), выдает ошибку update () имеет только 1 позиционный аргумент.