고유 ID를 통해 연결된 테이블을 처리 할 때 QSqlRelationalTableModel 대 QSqlTableModel을 사용하는 이점을 이해하려고합니다. 다음 예에서 조직 필드는 ID 번호 대신 이름으로 올바르게 표시됩니다. 그러나 연결된 레코드의 해당 "크기"또는 "주소"필드에 어떻게 액세스합니까?PySide를 사용하여 하나 이상의 조인 된 테이블에서 값 가져 오기
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtSql import *
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("relational_test_01.sqlite")
db.open()
q = QSqlQuery()
q.exec_("CREATE TABLE people(id INTEGER PRIMARY KEY, first VARCHAR(50), last VARCHAR(50), organization INTEGER)")
q.exec_("INSERT INTO people VALUES(1,'John', 'Smith', 1)")
q.exec_("INSERT INTO people VALUES(2,'Bob', 'Jones', 2)")
q.exec_("CREATE TABLE organizations(id INTEGER PRIMARY KEY, name VARCHAR(50), size INTEGER, address VARCHAR(50))")
q.exec_("INSERT INTO organizations VALUES(1,'Central Gym', 30, '400 Central Street')")
q.exec_("INSERT INTO organizations VALUES(2,'Shoe Store', 5, '200 Central Street')")
db.close()
model = QSqlRelationalTableModel()
model.setTable("people")
model.setRelation(3, QSqlRelation("organizations", "id", "name"))
model.setFilter("people.id = 1")
model.select()
count = model.rowCount()
if count == 1:
record = model.record(0)
org = record.value(3)
print(org)
감사합니다. "relTblAl_3"기능이 문서화되어 있지만, 불분명합니다. 어쨌든, 나는 그것이 존재하게되어 기쁩니다. 지난 몇 주간 PySide 질문에 모두 대답했습니다. 프로젝트와 관련하여 직접 연락 할 수있는 방법이 있습니까? – davideps
@davideps. 내 대답을 찾은 것을 기쁘게 생각합니다. 현재 다른 약속이 있기 때문에 다른 프로젝트에는 참여할 수 없습니다. 나는 항상 여기에 게시 된 pyqt/pyside 관련 질문을 볼 것입니다. 나는 항상 그 (것)들에 응답 할 수있을 것이라는 점을 약속 할 수 없다 - 그러나 나는 나가 추가하게 유용한 무언가가다는 것을 나는 생각하면 적어도 논평 할 것이다. – ekhumoro
나는 이해한다. 재능있는 사람들은 종종 바쁘습니다. 저는 Python과 Qt를 처음 접했고 PySide 또는 PySide2를 사용하는 데 필요한 일반적인 응용 프로그램 지침 (컨설팅) 및 공식 교육을 찾고 있습니다. 온라인에서 사용할 수있는 많은 자습서를 살펴 보았지만 접근 방법은 조금씩 다를 수 있습니다. Qt 회사는 현재 PySide 교육을 제공하지 않는 것으로 보이며 주제에 관한 최근의 책이 없습니다. 조언 있니? Python을 배우고 Qt의 C++ 및 PySide 이전 매뉴얼 페이지를 통해 고민 할 수있는 유일한 방법입니까? – davideps