私はDjangoのモデルにcustom primary keysを使用しています。 (私はデータベースに値をインポートしたので、これがあって、彼らはすでにIDの添付していた、それは既存の値を保持するために意味を成していた。)Django:カスタムPK自動インクリメントを作成していますか?
class Transaction(models.Model):
id = models.IntegerField(primary_key=True)
transaction_type = models.IntegerField(choices=TRANSACTION_TYPES)
date_added = models.DateTimeField(auto_now_add=True)
しかし、今私は、モデルの新しいインスタンスを追加しますデータベース、私は一意の主キーを自動生成したいと思います。私は、新しい値に指定する固有のIDを自動生成するにはどうすればよい
IntegrityError at /page
(1048, "Column 'id' cannot be null")
:
t = Transaction(transaction_type=0)
t.save()
ができます:私はインスタンスを作成する際のIDを指定しない場合でも、私はエラーを取得します既存の値をインポートする方法を変更する必要はありませんか?
UPDATE
私はどのように既存の値をインポートしている動作するようです。このカスタムメソッド、...
class Transaction(models.Model):
def save(self, *args, **kwargs):
if not self.id:
i = Transaction.objects.all().order_by('-id')[0]
self.id = i.id+1
super(Transaction, self).save(*args, **kwargs)
私は興味があります - 一括インポートを行っている場合、djangoが主キーを処理する問題は何ですか?運用/稼働中のシステムにインポートする場合を除いて、主キーが問題となる状況は一度もありませんでした。 –