Мои модели БД выглядят примерно так:
class Leave(models.Model):
available_leaves = models.IntegerField(default = 8)
class Policy(models.Model):
name = models.CharField(max_length=20)
class Student(models.Model):
name = models.CharField(max_length=20)
rating = models.IntegerField(default=7)
class StudentLeave(models.Model):
leave = models.ForeignKey(Leave, on_delete=models.CASCADE)
policy = models.ForeignKey(Policy, on_delete=models.CASCADE)
student = models.ForeignKey(Student, on_delete=models.CASCADE)
Я хочу отсчитать отпуск студента отсюда, я пробовал это
leave = Leave.objects.filter(pk = 1).first()
policy = Policy.objects.filter(pk = 1).first()
student = Student.objects.filter(name = 'matthew').first()
studentleave = StudentLeave.objects.filter(student = student, policy = policy, leave = leave).first()
Теперь у меня есть объект, оставленный студентом через который я могу получить доступ к каждой таблице, связанной с этой таблицей. Поэтому я попытался получить доступ к этому
studentleave.leave.available_leaves-=1 # Tried reducing it by one
print(studentleave.leave.available_leaves) #prints as 7 as expected because 8 is default
Но когда я снова получаю доступ к той же модели, ее значение по-прежнему равно 8 (старое значение), я попытался обновить и сохранить метод на studentleave.leave.update() and studentleave.update()
, которые в основном ошибка выдачи, потому что у этого объекта нет атрибута update
Как мне сохранить эти новые значения для них.
Заранее благодарим за потраченное время на решение этой проблемы.