id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
しかし、これをどのように変更すれば、IDはYYYYMMDDXXXXXX
のようになりますか?
:私はあなたがそのようなIDを作る必要がありますが、ええ、あなたがそれを行うことができる理由が表示されていない
YYYY = year
MM = month
DD = day
XXXXXX = random number
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
しかし、これをどのように変更すれば、IDはYYYYMMDDXXXXXX
のようになりますか?
:私はあなたがそのようなIDを作る必要がありますが、ええ、あなたがそれを行うことができる理由が表示されていない
YYYY = year
MM = month
DD = day
XXXXXX = random number
。 idを生成してフィールドに渡す小さな関数を作成するだけです。
モデルフィールドに続いてimport datetime
from uuid import uuid4
def create_id():
now = datetime.datetime.now()
return str(now.year)+str(now.month)+str(now.day)+str(uuid4())[:7]
id = models.CharField(primary_key=True, default=create_id, editable=False)
パラメータ呼び出し可能ではないとして関数オブジェクトを渡すことを忘れないでください。
私はそれを試してみる..ありがとうたくさん...ありがとうございます... –
@EduardoSatlerは、あなたが指定したパターンを使用して1日以上複数のユーザーを作成すると、同じIDを生成してDBが拒否するチャンスそれは例外を引き起こします。その場合は、未使用のものが見つかるまで一定の時間を再試行する必要があります。 –
モデルに日付フィールドがあるだけでなく、実際にそれを行う必要がある特定の理由はありますか? –