我已经有了Vehicle和Car的表,使用这个django-positions来定位表中的项。为此,我在两个模型中都添加了位置字段。
class Vehicle(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50, unique=True)
position = PositionField()
和
class Car(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50, unique=True)
vehicle = models.ForeignKey(Vehicle, related_name="vehicle")
position = PositionField()
makemigrations
运行良好,但migrate
得到以下错误。使用postgreSQL
django.db.utils.IntegrityError: check constraint "myapp_vehicle_position_check" is violated by some row
在迁移过程中,SQL代码检查PositionField的值是否大于或等于0。默认值为-1,用于自动排序迁移失败。
我没有挖掘更多,但作为一个转变,将默认值更改为等于或大于零的值,允许迁移成功。
class Vehicle(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50, unique=True)
position = PositionField(default=99)