강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của pink321ryu
pink321ryu

câu hỏi đã được viết

Phát triển web Python (sử dụng Flask, SQLAlchemy)

nhiều-nhiều 2

(many to many)에러문구 관련

Viết

·

356

0

안녕하세요.

그대로 코드를 진행했는데요. 상호참조하는 것 관련해서 에러가 나는데 그냥 무시를 해도 될까요?

=>

admin = Role(position='admin') 실행시 에러문구

workspace/inflearn_240120/venv/bin/ipython:1: SAWarning: relationship 'User.project' will copy column user.id to column user_project.user_id, which conflicts with rel

ationship(s): 'Project.user' (copies user.id to user_project.user_id), 'User.projects' (copies user.id to user_project.user_id). If this is not the intention, consider

if theserelationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that

foreign key constraints are partially overlapping, the orm.foreign()annotation can be used to isolate the columns that should be written towards. To silence this war

ning, add the parameter 'overlaps="projects,user"' to the 'User.project' relationship. (Background on this warning at: https://sqlalche.me/e/20/qzyx) (This warning ori

ginatedfrom the configure_mappers() process, which was invoked automatically in response to a user-initiated operation.)

 

pythonflasksqlalchemy

Câu trả lời 1

0

pink321ryu님의 프로필 이미지
pink321ryu
Người đặt câu hỏi

backref ='user' -> back_populates='users'

backref='project' -> back_populates='projects'

로 수정하니 경고문구가 없어졌고 실행도 잘 되는데요.

 

Document를 여러번 읽어보니, 헷갈리기는 한데요..

 

backref를 사용할 때는 parent 이든 child 이든 한쪽에만 하고 양쪽으로는 back_populates 를 넣는 듯 한데..

 

사실 sqlalchemy 에서 이 관계설정이 핵심일 거 같은데.

혹시 추가적인 설명을 좀 해주실 수 있을지요?

 

Hình ảnh hồ sơ của pink321ryu
pink321ryu

câu hỏi đã được viết

Đặt câu hỏi