LINUX.ORG.RU

Django get id in def save()

 ,


0

1

Такой вопрос, почему нельзя взять id текущей сохраняемой модели в методе модели save() ?

Class MyModel(model.Model):
    ...


    def save(self, *args, **kwargs):
        try:
            current_id = self.id
        except:
            current_id = ""
        print (current_id)
        super(MyModel, self).save(*args, **kwargs)

Почему отрабатывается except?! Почему можно получить значения всех полей через self, окромя id ? И как его вообще получить в методе save?

Вроде разобрался. id присваивается уже только после save().

KernelPanic
() автор топика

Если модель только что создана и не записывалась в БД, то у неё не будет primary key, ясен пень. Если он обязательно нужен, то код надо запихивать в сигнал post_save, а не метод save().

heilkitty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.