0

考虑这个模型:

class Organisation(models.Model):
    ref = models.CharField(max_length=50, primary_key=True)
    type = models.IntegerField(choices=ORGANISATION_TYPE_CHOICES, blank=True, null=True)
    org_name = models.CharField(max_length=255)
    org_name_lang = models.CharField(max_length=255, blank=True, null=True)

    date_created = models.DateTimeField(auto_now_add=True, editable=False)
    date_updated = models.DateTimeField(auto_now=True, editable=False)

我在创建时收到此错误,但实例实际上已保存:

django.db.utils.IntegrityError: (1048, "Column 'organistion_id' cannot be null")

再次运行创建:

django.db.utils.IntegrityError: (1062, "Duplicate entry 'GB-CHC-202918' for key 'PRIMARY'")

我正在使用 mysql,并且没有使用字符主键,我错过了什么吗?

更新:已解决(有一个具有自定义保存方法的相关模型)

4

1 回答 1

0

Django 中的每个模型也有一个id自动添加并用作主键的字段(请参阅自动主键字段)。当您指定主键时, Django 不会添加该id字段,但由于您收到此错误,我认为您在创建表后添加了自己的主键?

如果是这样,您可以删除表并重新创建它 ( syncdb) 或添加数据库迁移以修改表结构(例如,使用south)。

于 2012-06-19T08:40:48.503 回答