2017-07-26 10 views
0

でのAutoFieldにCharFieldですプライマリキーを変換するために、どのように私は私のDjangoのアプリケーションでは、次のようなモデルを持っているはPostgresの

order_id = models.CharField(max_length=120, default=uuid.uuid4, unique=True, primary_key=True) 
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False,null=True) 
    delivery_address = models.CharField(max_length=200, blank=True) 
    order_by = models.ForeignKey(User,null=True, blank=True,on_delete=models.CASCADE); 
    order_Description = JSONField(null=True, blank=True) 

私は私の最後の列がorder_id = models.AutoField(primary_key=True)ようになりますようにのAutoFieldにORDER_IDを変換したいです移行中に次のエラーが発生しました django.db.utils.ProgrammingError: operator class "varchar_pattern_ops" does not accept data type integer。私はオンラインで検索しましたが、私は上記の問題に対する適切な解決策を見つけることができません。この質問が以前に尋ねられたのであれば申し訳ありません。事前に助けてくれてありがとう。

答えて

0

Djangoは現在の文字列の値を整数に変換しようとしますが、もちろんそれを行うことができます。 したがって、データの移行を作成して(例:data-migrations)、現行の値をすべて整数に変更する必要があります。新しい列を作成する最善の方法かもしれません。また、表に外部キーがある場合は、 。