Djangoではモデルで特に何も指定しないと
プライマリキー名はid、型は整数(integer)、1からの連番で生成される。
ここでは、モデルのプライマリキーとして
UUID(Universally Unique Identifier)を利用する例を示す。
model.py
from django.db import models
import uuid
class Sample(models.Model):
sampleId = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
ポイントとなるのは下記の、 primary_key=True の部分、
ここでsampleIdがプライマリキーであることを明示している。
sampleId = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
モデルのオブジェクトが生成されたタイミングで自動的に割り当てられて欲しいので、
default=uuid.uuid4 を指定。
さらに、プライマリキーをあまり考えなしに変更すると
DBの整合性が壊れそうなので editable=False を指定
(ここは取り越し苦労の可能性は高いが......)