2017-08-20 17 views
2

を作成します。ジャンゴ - 私はDjangoの自動PRIMARY_KEY</p> <p>と私のモデルのIDを生成し、知っていると私はまた、私は、カスタムIDを生成したい場合は、私がやるべきことを知っているカスタムID

id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 

しかし、これをどのように変更すれば、IDはYYYYMMDDXXXXXXのようになりますか?

:私はあなたがそのようなIDを作る必要がありますが、ええ、あなたがそれを行うことができる理由が表示されていない

YYYY = year 

MM = month 

DD = day 

XXXXXX = random number 
+3

モデルに日付フィールドがあるだけでなく、実際にそれを行う必要がある特定の理由はありますか? –

答えて

0

。 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) 

パラメータ呼び出し可能ではないとして関数オブジェクトを渡すことを忘れないでください。

+0

私はそれを試してみる..ありがとうたくさん...ありがとうございます... –

+0

@EduardoSatlerは、あなたが指定したパターンを使用して1日以上複数のユーザーを作成すると、同じIDを生成してDBが拒否するチャンスそれは例外を引き起こします。その場合は、未使用のものが見つかるまで一定の時間を再試行する必要があります。 –

関連する問題