我用的是mysql数据库.保存后,Peewee没有设置id字段
Peewee型号:
class OAuthAccount(BaseModel):
id = BigIntegerField(primary_key=True,index=True,unique=True , db_column="id")
oauth_provider_id = IntegerField(null=False)
oauth_uid = CharField()
oauth_token = CharField()
oauth_token_secret = CharField()
username = CharField()
inserter = BigIntegerField(null=True,db_column="inserter_id")
insert_date = DateTimeField(null=True,default=fn.NOW())
updater = BigIntegerField(null=True,db_column="updater_id")
update_date = DateTimeField(null=True)
extra_data = CharField()
保存代码:
oauthUser = OAuthAccount(
oauth_provider_id= formData.get("oauth_provider_id"),
oauth_uid = formData.get("oauth_uid"),
oauth_token = formData.get("oauth_token"),
oauth_token_secret=formData.get("oauth_token_secret"),
username = formData.get("username"),
inserter_id = g.auth.userId(),
extra_data = formData.get("extra_data")
)
oauthUser.save()
print "id => " + str(oauthUser.id)
输出为:id =>没有
该行已成功插入数据库.但是id仍然是None
解决方法:
我不明白但是当我做这个改变时它起作用了:
id = BigIntegerField(primary_key=True,index=True,unique=True , db_column="id")
->
id = BigIntegerField( db_column="id")
它也适用于这种变化:
id = BigIntegerField(primary_key=True,index=True,unique=True , db_column="id")
->
id = PrimaryKeyField( db_column="id")
当我把primary_key = True时它不起作用.
id = BigIntegerField(primary_key=True , db_column="id")
也许这是一个错误?
标签:python,mysql,peewee 来源: https://codeday.me/bug/20190628/1315513.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。