我使用优秀的PeeWee
模块将一些id和主机名保存到MySQL
表中。
我希望'clientId'(它是一个整数字段)作为主键,但是我似乎需要使用save(force_insert=True)
使其插入-否则我不会向表中添加任何内容。我没有收到任何错误消息。
我以为只有在主键字段不是整数的情况下才需要这样做。
我指的是文档-(https://peewee.readthedocs.org/en/2.0.2/peewee/fields.html#non-integer-primary-keys)
我的型号:-在
class BaseModel(peewee.Model):
class Meta:
database = db
class Client(BaseModel):
clientId = peewee.IntegerField(primary_key=True)
clientName = peewee.TextField()
isDeletedClient = peewee.BooleanField(default=False)
#Create object to insert using collected data...
clientEntry = Client(clientId=clientId,
clientName=clientName,
isDeletedClient=isDeletedClient)
#clientEntry.save() # <-- Nothing gets inserted
clientEntry.save(force_insert=True) # <-- Works.
非常感谢你的回复。我相信我没有正确地使用save()方法。我应该使用create(),因为我的脚本总是创建一个新的空表,然后填充它。在
所以现在我的模型保持不变,但是插入一行会变成。。。在
这是一个微妙的问题,但如果您希望自动递增主键字段,则应该使用
PrimaryKeyField
,而不是IntegerField(primary_key=True)
。在这样可以解决问题:
相关问题 更多 >
编程相关推荐