TIL-17. DB에서 테이블 유지한 채 데이터만 날리기/역참조 시 주의할 점

solarrrrr·2021년 11월 6일
0

Today I Learned

목록 보기
17/74
post-thumbnail

DB에서 테이블은 유지한 채 데이터만 모두 삭제하는 명령어(django 사용 중)

python manage.py flush


역참조로 접근할 때 문법

기본적으로 역참조는 나를 참조하고 있는 테이블에
역으로 참조할 때 사용된다.

A라는 메인 테이블이 있고 B라는 서브 테이블이 있을 때
B의 특정 항목에 foreign key를 설정해
A 테이블의 pk 값을 참조할 수 있는데
이건 정참조이고 A에서 B 테이블로 접근하는 것이 역참조이다.

_set, related_name 등의 역참조 방법들이 있는데
이때 내가 헤맨 부분이 있어 기록한다.

p = Product.objects.get(id=pk)
p.productimage_set.all()

modelys.py에는 Product와 ProductImage라는
클래스가 각각 존재하며 이들은 DB에
products, product_images라는 이름의 테이블로 존재한다.

  • 클래스명의 첫 글자는 대문자, 테이블명은 Meta로 별도 설정하는데
    소문자 복수로 처리한다.

역참조로 product_images 테이블에 접근해야 하는데
클래스명도 안 되고 테이블명도 안 되고 왜 접근이 안 되는지,
분명 과제 때 잘 접근했는데 한참 헤맸었다.

위에 기재했듯이 역참조로 해당 테이블에 접근할 때는
클래스명을 소문자로 넣어주면 된다. (복수 아님)

profile
몰입

0개의 댓글