Как сделать метод сохранения модели, при котором PK увеличивается на n чисел
Это вопрос в продолжение моего предыдущего поста.
Я пытаюсь переписать метод Save модели так, чтобы первичный ключ увеличивался на 5 следующим образом:
class Client(Model):
client_id= models.PositiveIntegerField(primary_key=True)
client_name = models.CharField(max_length=1000, null=True, blank=True)
# Overwrite the Save functionality to increment the Client ID by 5
def save(self, *args, **kwargs):
try:
if self._state.adding is True:
# Intialize the first Client Id to 5 and then after Increment by 5
if not Client.object.count():
self.client = 5
else:
self.client = Client.object.last().client + 5
super(Client, self).save(*args, **kwargs)
except (Exception, FileNotFoundError, IOError, ValueError) as e:
print(e)
return False
def __str__(self):
return str(self.client_name)
class Meta:
db_table = 'Client'
Однако, приведенный выше код не работает, фактически он вообще не создает запись клиента.
Есть предложения, что я делаю неправильно?
Спасибо.
В части else вы не присваиваете client_id. Добавьте следующий код :
if not Client.object.count():
self.client_id = 5
else:
self.client_id = Client.object.last().client_id + 5