플라스크에 Flask 및 SQLAlchemy가 시작되었습니다.Flask 관계 모델 여러 개 존재하지 않을 경우 생성 또는 생성
여기 예제를 사용하여 다 대 다 관계가 있습니다 http://docs.sqlalchemy.org/en/latest/orm/tutorial.html 키워드 및 태그에 대한 부분으로 스크롤하면이 작업이 진행됩니다. 지금까지 내 글과 관련된 새 키워드를 삽입 할 수 있었고 추가 기능을 사용하고 있습니다. 내가 아는 것은 잘못된 것입니다. 따라서 다음 번에 고유하지 않은 키워드가 블로그 게시물에 발생하면 키워드와의 충돌에 대한 오류가 발생합니다 (키워드는 고유해야하기 때문에 키워드는 0120). 무엇을 모르겠다. 나는 get_or_create (키워드)의 예를 보았는데, 기본적으로 키워드별로 필터링 한 다음 찾지 못하면 추가합니다. 그러나 나는 데이터 크기가 커짐에 따라 이것이 또한 틀릴 것이라고 믿는다. (한 번의 삽입으로 모든 저장시 여러 번 통화). SQLAlchemy가 자동으로 여러 개의 삽입 작업을하는 방식을 좋아합니다. 나는 이것을 지키고 싶지만이 중복 키 문제는 피하십시오.
편집 : SQLAlchemy docs가 오류에 대한 해결책을 찾았지만 설명이 나와 있습니다. 나는 답을 추가했다.
btw 관련 모델에 append를 사용하고 있습니다. 이렇게. post.keywords.append (Keyword ("foo")) 그런 다음 commit을 호출합니다. – Vangel
모델을 게시하고 실제 코드를 추가 할 수 있습니까? – plaes
게시물을 업데이트했습니다. 나는 분명히 아무것도하지 않을 merge()와 같은 것을 시도하고 아무것도하지 않는다. 두 번째 페이지로드로 인해 항상 오류가 발생합니다. Game 테이블에 존재하지 않는 게임 (태그)과 usergames (존재하지 않는 경우)를 추가하고 싶습니다. Ofcourse 나는 그것이 게임이 아닌 usergames에있는 게임을 가지고 있습니다. 그 부분은 문제 없습니다. merge()가 (와) 만 처리하기 때문에 Tag()가 기본 키로 문자열 내용 "a1", "a2"즉 자연적인 기본 키를 가진 경우에만 Game() – Vangel