首页 > 解决方案 > 在 Django 2.1.1 中为表的“id”列指定了多个默认值

问题描述

所以我不断收到这个错误,说设备表有多个指定的 ID 值,但我不知道我在哪里指定了任何类型的默认 ID。我尝试将字段设置为 primary_key=True 但这也没有解决问题。

编辑: 追溯

class Campus(models.Model):
name = models.CharField(max_length=20)
address = models.CharField(max_length=40)

def __str__(self):
    return self.name

class Meta:
    verbose_name_plural = "Campuses"



class Teacher(models.Model):
name = models.CharField(max_length=20)
phone = models.CharField(max_length=11)
department = models.CharField(max_length=20)
campus = models.OneToOneField(Campus, on_delete=models.CASCADE, default="Not Assigned")
#devices = self.Device.objects.all()

def __str__(self):
    return self.name



class Device(models.Model):
inUse = 'IU'
inStock = 'IS'
inMaintenance = 'IM'
damaged = 'DM'
statusChoices = (
    (inUse, 'In Use'),
    (inStock, 'In Stock'),
    (inMaintenance, 'In Maintenance'),
    (damaged, 'Damaged'),
)

name = models.CharField(max_length=20)
brand = models.CharField(max_length=20)
status = models.CharField(max_length=2, choices=statusChoices, default=inStock)
#user = models.ForeignKey(Teacher, on_delete=models.CASCADE, default=0)

def __str__(self):
    return self.name

标签: djangodjango-models

解决方案


导航到我的 PostgreSQL 实例后,我删除了所有与 Django 相关的数据并重新进行了迁移,一切都恢复正常了。

对于未来的用户:我建议删除数据库中过去的迁移表。


推荐阅读