初めに?追加しようとしている番号は固定番号ですか? もしそうなら、なぜそれをデータベースに保存する必要があるのですか? プロパティとして機能し、必要に応じて数値を追加するメソッドをモデルに作成できます。
class ModelX(models.Model):
...
def special(self):
num = 1000
return self.id + num
ダニエルが言ったように、オブジェクトがデータベースに保存された後にIDを取得するため、これをデータベースに保存する必要がある場合は、おそらく2つのデータベースアクセスを行う必要があります。
save
メソッドを次のように変更できます。
def save(self, *args, **kwargs):
num = 1000
self = super(MyModel, self).save(*args, **kwargs)
self.special = self.id + num
self.save()
これは、モデルを宣言した方法に応じて、データベースでオブジェクトが最初に作成されるときにこれを行うだけで最適化される場合があることに注意してself.special
ください。NULL
def save(self, *args, **kwargs):
num = 1000
self = super(MyModel, self).save(*args, **kwargs)
# self.special is null, (creating the object in the db for the 1st time)
if not self.special: # or if self.special != defaultvalue (defined in MyModel)
self.special = self.id + num
self.save()
これが役立つことを願っています。