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。
我的 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。