Peewee Python ORM:将查询结果分配给ForeignKeyField
我有两个模型,一对多关系非常简单。我试图将查询其中一个实体的结果分配给另一个实体,但我不知道如何做。代码如下: 主类继承自2个类,并且还重载了Peewee Python ORM:将查询结果分配给ForeignKeyField,python,orm,peewee,Python,Orm,Peewee,我有两个模型,一对多关系非常简单。我试图将查询其中一个实体的结果分配给另一个实体,但我不知道如何做。代码如下: 主类继承自2个类,并且还重载了\uuuu init\uuu方法 class Bot(MySQLDatabase, ClientXMPP): room = ForeignKeyField(Room) 在某个时候,我查询并尝试分配: def __init__(self, ..., ..., room): DBConnection.connect() self.r
\uuuu init\uuu
方法
class Bot(MySQLDatabase, ClientXMPP):
room = ForeignKeyField(Room)
在某个时候,我查询并尝试分配:
def __init__(self, ..., ..., room):
DBConnection.connect()
self.room = Room.get(...)
self.save()
但这给我带来了一个例外:
Traceback (most recent call last):
File "main.py", line 25, in <module>
xmpp = Bot(..., ..., room)
File "/home/.../bot.py", line 29, in __init__
self.room = room
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 724, in __set__
instance._data[self.att_name] = value.get_id()
TypeError: 'NoneType' object does not support item assignment
回溯(最近一次呼叫最后一次):
文件“main.py”,第25行,在
xmpp=Bot(…,…,房间)
文件“/home/../bot.py”,第29行,在_init中__
房间
文件“/usr/local/lib/python2.7/dist packages/peewee.py”,第724行,在__
实例._data[self.att_name]=value.get_id()
TypeError:“非类型”对象不支持项分配
我刚开始使用这个库,所以这可能是由于对文档的误解。我知道这是一个老问题,但如果其他人遇到此错误,我会找到以下链接:因此,您必须在任何peewee模型构造函数中调用super 所以
将成为:
def __init__(self, ..., ..., room):
super(Bot, self).__init__()
DBConnection.connect()
self.room = Room.get(...)
self.save()
你能详细介绍一下你的模型,特别是房间的种类吗?。否则,我打赌你已经知道我正在更新帖子以添加更多信息。我不认为Room的结构是相关的(毕竟,它是一个具有属性的简单类),但由于我使用重载init方法的多重继承,问题似乎就在这里。对不起,我认为您需要在这里更清楚地发布您的模型。无论如何,请尝试使用简单的peewee查询。
def __init__(self, ..., ..., room):
super(Bot, self).__init__()
DBConnection.connect()
self.room = Room.get(...)
self.save()