👀
Djangoでidをuuidにするときに気をつけること
Djangoでidを連番ではなく、uuidにする際に
UUIDFieldのdefaultにuuid.uuid4()と書くとハマる
uuid.uuid4()だとリクエスト毎にuuidが生成されず、1回目はうまく登録できるが2回目移行できなくなる。
解決策として
uuid.uuid4にするだけ
code sample
import uuid
from django.db import models
class Base(models.Model):
class Meta:
abstract = True
id = models.UUIDField(
primary_key = True,
default = uuid.uuid4, ← ここ(uuid.uuid4()これだとダメ)
editable = False
)
Discussion
自分もハマりました(笑)
コメントありがとうございます。🙌
pythonドキュメントには()ありで書かれているからいけると思ったら
Djangoドキュメントには()なしでちゃんと書かれているんですよね
これに気づくまでに結構時間を費やしちゃいました😭
(ドキュメントはちゃんと読もうという教訓ですね😁)