table 错误的 Django 多个主键

Django multiple primary keys for table error

我的 Django 应用程序在本地主机上运行良好,但是当我尝试将它推送到 Heroku 时,出现以下错误:

远程:django.db.utils.ProgrammingError:table "Clientes_productlist" 的多个主键是不允许的

我的 models.py 文件是:

class ProductList(models.Model):
    id_new = models.IntegerField(primary_key=True)
    sku = models.CharField(max_length=200)
    client = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
    name = models.CharField(max_length=256)
    description = models.CharField(max_length=1000)
    storage = models.CharField(max_length=256)
    cost_price = models.CharField(max_length=256)
    sell_price = models.CharField(max_length=256)
    ncm = models.CharField(max_length=256)
    inventory = models.IntegerField(null=True)

    class Meta:
        unique_together = (('sku', 'client'),)

我也在使用 django-import-export 包。因此,我的 resources.py 是:

class ProductListResource(resources.ModelResource):

    class Meta:
        model = ProductList
        skip_unchanged = True
        report_skipped = True
        exclude = ('id',)
        import_id_fields = ('sku', 'client',)
        fields = ('sku', 'client', 'name', 'description', 'storage', 'cost_price', 'sell_price', 'ncm', 'inventory',)

是什么导致了这个错误,我该如何解决?

要解决此问题,您需要删除存在 ProductList 模型的应用的 migrations 文件夹中的所有迁移文件,__init__.py 文件和 运行 ./manage.py makemigrations 生成新的迁移。然后提交这些迁移并将它们推送到 Heroku。