У меня есть две модели во многих отношениях.Я хочу использовать форму для обновления полей, форма имеет выпадающий список, когда авторизаторы имеют возможность отклонить или одобрить отпуск.как только отпуск был одобрен, я хочу иметь возможность настроить Leave_current_balance.Тем не менее, я получаю сообщение об ошибке: объект «float» не имеет атрибута «save» из строки кода current_balance.save ()
def unitDirectorForm(request,id):
if request.method=='POST':
getstaffid=NewLeave.objects.get(id=id)
form = DirectorForm(request.POST, instance=getstaffid)
if form.is_valid():
form.save()
total_days = getstaffid.Total_working_days
current_balance = getstaffid.user.leave_balance.Leave_current_balance
diff_balance = current_balance - total_days
current_balance = diff_balance
current_balance.save()
return HttpResponse('You have successfuly Authorise the leave')
else:
form=DirectorForm()
balance_form = leavebbalanceForm()
return render(request,'managerauthorisedform.html',{'form':form})
class LeaveBalance(models.Model):
user=models.OneToOneField(User,on_delete=models.CASCADE,primary_key=True,)
Leave_current_balance= models.FloatField(null=True, blank=True, default=None)
Year=models.CharField(max_length=100,default='')
def __unicode__(self):
return self.Year
class NewLeave(models.Model):
user=models.ForeignKey(User,default='',on_delete=models.CASCADE)
leave_balance=models.ManyToManyField(Leave_Balance)
Leave_type=models.CharField(max_length=100,blank=False,default='')
Total_working_days=models.FloatField(null=True, blank=False)
leave=(
('annual','annual'),
('sick','sick'),
)
Leave_type=models.CharField(max_length=100,choices=leave,blank=False,default='')
def __unicode__(self):
return self.Leave_type
class DirectorForm(forms.ModelForm):
class Meta:
model=NewLeave
fields=('Director_Authorization_Status','Authorized_by_Director','Date_Authorized',)
widgets={
'Date_Authorized':DateInput()
}