Сохранение изменений в Django не отражается в базе данных
Я знаю, что есть несколько похожих постов, но ничего из того, что я прочитал, не помогло решить мою проблему. У меня следующая модель:
class Run(models.Model):
id = models.AutoField(primary_key=True)
date_created = models.DateTimeField(auto_now_add=True)
date_modified = models.DateTimeField(auto_now=True)
description = models.TextField(blank=True, null=True)
model = models.ForeignKey(Model, on_delete=models.CASCADE)
script = models.ForeignKey(Script, on_delete=models.CASCADE)
parameters = models.ForeignKey(Parameters, on_delete=models.CASCADE)
weights = models.ForeignKey(Weights, on_delete=models.CASCADE, null=True)
status = models.ForeignKey(Status, on_delete=models.CASCADE)
tags = models.ManyToManyField(Tag)
train_score = models.FloatField(blank=True, null=True)
validation_score = models.FloatField(blank=True, null=True)
и следующая функция:
def save_run(run_id: str, model, train_score: float, validation_score: float):
...
run: Run = Run.objects.get(id=run_id)
run.train_score = train_score
run.validation_score = validation_score
run.save()
но, несмотря на то, что он находит выполнение в базе данных, "успешно сохраняет" и регистрирует все атрибуты, даже после сохранения изменения не отражаются в базе данных. Я пробовал форсировать с помощью update_fields=["train_score", "validation_score"]
и force_update=True
без успеха. Есть идеи?
def save(self, *args, **kwargs):
run: Run = Run.objects.get(id=run_id)
run.train_score = train_score
run.validation_score = validation_score
run.save()
return super().save(*args, **kwargs)