以下代码中的错误是什么?

时间:2012-01-04 04:01:18

标签: python django django-models django-admin

这是我的Django模型

class author(models.Model):
    name = models.CharField('name',max_length=140)
    datamode = models.CharField(max_length=1, default='A', choices=DATAMODE_CHOICE)

    def __str__(self):
        return '%s' % (self.name)

虽然我在另一个类中使用此类author作为外键,如下所示:

class books(models.Model):
    NEW_FLAG=(('N','New'),('O','Old'))
    name = models.CharField('name',max_length=140)
    author = models.ForeignKey(author, blank=True, null=True)

当我在admin中输入新书的详细信息时,它会显示:

IntegrityError: Column 'author_id' cannot be null.

3 个答案:

答案 0 :(得分:6)

仅仅因为您的模型表示某些内容并不意味着您的数据库同意。验证您的架构。

答案 1 :(得分:1)

对我而言,似乎你已经改变了你的模特。更改模型后是否使用过python manage.py syncdb

如果您仍在编码您的应用并且并不真正关心保留数据,那么最好删除数据并让django再次创建表。如果您必须保留数据,那么您必须验证您的数据库架构,就像已经说过的那样。

答案 2 :(得分:0)

现在它正在工作,我只是删除了我的数据库,并再次创建了一个新的。无论如何,谢谢大家。