2014-02-05 3 views
1

저는 Python Peewee ORM을 사용하고 있습니다. 객체 자체 대신 단순히 키를 삽입하여 외부 필드를 어떻게 삽입 할 수 있는지 궁금합니다. 예를 들어, message_type이있는 message라는 모델이 있는데, 이는 ForeignKeyField입니다. 나는 message_type의 핵심은 1 것을 알고, 그래서 나는이 시도 :Python Peewee에 ForeignKeyFields를 수동으로 삽입하는 방법은 무엇입니까?

>>> 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 

아무도 내가이 작업을 수행 할 수있는 방법을 알고 있나요을? 당신은 당신이 할 수 원하는 경우

답변

1

는 정수 값을 사용하는 이유가 궁금는 ORM의 장점은 ... 객체와 함께 작동 할 수 있도록

이다 그러나 :

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

감사! 그 이유는 API 호출에서 정수를 반환하는 경우가 많기 때문에 실제 객체를 가져 와서 모델에 배치하는 대신 ORM에 직접 ID를 삽입하는 것이 더 쉽기 때문입니다. 무리 감사! – kramer65