2014-04-15 2 views
4

방금 ​​추가 한 개체의 ID가 session.add()이어야합니다. committing 세션 전에이 개체의 자동 증가 ID가 필요합니다.SQLAlchemy는 세션을 커밋하지 않고 개체의 ID를 가져옵니다.

오브젝트 instance.id를 호출하면 None이됩니다.

커밋하지 않고 개체의 ID를 가져 오는 방법이 있습니까?

+0

hacky solution하지만 마지막으로 추가 된 객체의 ID를 얻고 추가 ​​할 수 있습니까? – rysloan

+0

위의 내용은 실제로 매우 위험하며 모든 종류의 문제가 될 수 있습니다. 여기에서 가장 중요한 질문은/왜/커밋 전에 ID가 필요한지? 편집을 위해서? 또는? 다른 방법으로 객체를 얻거나 편집 할 수 있습니다. –

+0

객체의 ID를 추후에'celery '에 의해 호출 될 함수에 전달해야합니다. http://www.celeryproject.org/ – giga

답변

5

간단한 대답 : session.flush()으로 전화하십시오.

+0

감사. 항상 부작용없이 일한다는 보장이 있습니까? – giga

+0

아무 것도 commit()을 호출하지 않습니다. –

관련 문제