如何在Python Peewee中手动插入ForeignKeyFields?

如何在Python Peewee中手动插入ForeignKeyFields?,python,orm,foreign-keys,peewee,Python,Orm,Foreign Keys,Peewee,我正在使用Python Peewee ORM,我想知道如何通过简单地插入键而不是对象本身来插入外部字段。例如,我有一个名为message的模型,它有一个message_类型,它是一个ForeignKeyField。我知道消息类型的键是1,所以我尝试以下方法: >>> m = Message() >>> m.message_type_id = 1 >>> m.text="aergaer" >>> m.save() Traceb

我正在使用Python Peewee ORM,我想知道如何通过简单地插入键而不是对象本身来插入外部字段。例如,我有一个名为message的模型,它有一个message_类型,它是一个ForeignKeyField。我知道消息类型的键是1,所以我尝试以下方法:

>>> m = Message()
>>> m.message_type_id = 1
>>> m.text="aergaer"
>>> m.save()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.9-intel/egg/peewee.py", line 2479, in save
  File "build/bdist.macosx-10.9-intel/egg/peewee.py", line 1775, in execute
  File "build/bdist.macosx-10.9-intel/egg/peewee.py", line 1470, in _execute
  File "build/bdist.macosx-10.9-intel/egg/peewee.py", line 1885, in execute_sql
  File "build/bdist.macosx-10.9-intel/egg/peewee.py", line 1871, in sql_error_handler
sqlite3.IntegrityError: message.message_type_id may not be NULL
>m=Message()
>>>m.message\u type\u id=1
>>>m.text=“aergaer”
>>>m.save()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“build/bdist.macosx-10.9-intel/egg/peewee.py”,第2479行,保存
文件“build/bdist.macosx-10.9-intel/egg/peewee.py”,第1775行,执行
文件“build/bdist.macosx-10.9-intel/egg/peewee.py”,第1470行,在
执行sql中的文件“build/bdist.macosx-10.9-intel/egg/peewee.py”,第1885行
sql错误处理程序中的第1871行文件“build/bdist.macosx-10.9-intel/egg/peewee.py”
sqlite3.IntegrityError:message.message\u type\u id不能为空

有人知道我怎么做吗?

我很好奇为什么要使用整数值,ORM的好处是能够处理对象

但是,如果您愿意,您可以:

m = Message()
m.message_type = 1
m.text = 'whateve

谢谢原因是我经常从API调用中获取一个整数,而不是首先获取实际对象并将其放入模型中,直接在ORM中插入id更容易。非常感谢!