2017-07-26 26 views
0

我喜欢在我的Django的应用程序下面的一个模型如何将Charfield主键转换为下拉列表AutoField在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转换为下拉列表AutoField让我的最后一列看起来像order_id = models.AutoField(primary_key=True)但我在迁移期间遇到以下错误 django.db.utils.ProgrammingError: operator class "varchar_pattern_ops" does not accept data type integer。我在网上搜索,但我无法找到适合上述问题的解决方案。如果这个问题以前已经被问过了,我很抱歉。我在这里先向您的帮助表示感谢。

回答

0

Django尝试将您当前的字符串值转换为整数,当然可以。 因此,您需要创建数据迁移(查找eaxample:data-migrations)并将所有当前值更改为整数,可能是创建新列的最佳方法,并且记住如果表上有外键,则需要为其他表进行数据迁移。

相关问题