sqlite peewee.IntegrityError:NOT NULL约束失败:user.id

hts6caw3  于 2023-08-06  发布在  SQLite
关注(0)|答案(1)|浏览(124)

关于Peewee Import

forum_db = SqliteDatabase("forum.db")

class BaseModel(Model):
    class Meta:
        database = forum_db

class User(BaseModel):
    name = CharField(unique = True)
    id = IntegerField()

class Post(BaseModel):
    id = IntegerField()
    message = TextField()
    user_id = ForeignKeyField(User, backref = "id")

class Thread(BaseModel):
    id = IntegerField()
    title = CharField()
    user_id = ForeignKeyField(User, backref = "id")
    posts = ForeignKeyField(Post)

if __name__ == "__main__":
    forum_db.connect()
    forum_db.create_tables([User, Post, Thread])

    User.create(id = 1, name = "Cameron")

字符串
'''
我正在为一个简单的论坛API创建一个数据库。虽然当我试图创建一个用户,它给了我的标题中的错误。我输入了“id = 1”,所以我不确定如何解决这个问题。

gkl3eglg

gkl3eglg1#

您可能希望使用自动递增主键。它们被隐式地创建为“id = AutoField()”,但您可以显式地定义一个为:

class User(...):
    id = AutoField()

字符串
您已经指定了id = IntegerField,这要求您显式地设置该值。
也不相关,但您的backref名称不正确。我觉得你不太了解他们。在您的示例中,它们将是users
请参考初学者文档和快速入门:http://docs.peewee-orm.com/en/latest/peewee/quickstart.html#quickstart

相关问题