목록Django/DRF (3)
개발자 블로그

1. F expression 찜(좋아요) 기능은 product model에 있는 like_cnt 필드를 생성과 함께 업데이트를 해줘야한다. 업데이트 시 F()객체를 사용하지 않고 단순히 + 1을 하게 된다면, 레이스 컨디션 상황에 빠져 동시에 해당 기능이 원하는 값이 나오지 않을 수 있다. F()객체는 파이썬 메모리로 필드값을 가져오지 않고 디비 상에 필드를 참조하는 형식으로 race condition 상황을 피할 수 있다. 2. Unique Constraints Fields 찜(좋아요) 기능은 사용자-상품 필드를 묶어 유일해야한다. 3. 모델의 필드 related_name 설정 참조하는 모델을 2개 이상일 때 두개를 구분하기 위함이고, 나중에 역참조 모델을 가져올때 해당 설정의 값으로 불러온다. 4. ..

1. 역참조하고 있는 필드(해당 모델에는 필드가 존재하지 않지만, 해당 모델을 참조하고있는 모델을 필드로 설정)를 get활용하여 데이터를 전달하는 방법은 시리얼라이저의 메소드필드를 사용해서 return값으로 역참조하여 객체 생성 ex) 하나의 게시글에 달린 모든 댓글 보기 - 댓글은 게시글을 참조하고 있다. get_필드명 으로 함수를 선언하고 객체의 역참조 필드를 불러오는 메소드 선언 -> 해당 메소드의 경우 dir() 메소드를 통해 확인 가능. : related_name에 설정한 필드명 또는 필드명_set 2. 시리얼라이저의 메소드 필드를 활용해서 역참조 되고있는 객체를 통해 더 나은 스트링을 반환할 수 있음. 해당 부분은 상품의 댓글 시리얼라이저를 갖고오는 데 user 필드가 pk가 아니라 usern..

1. instance 에 접근하여 추가, 생성, 수정, 삭제, 부분삭제하는 add(), create(), set(), clear(), remove() 메소드. 주로 N:N필드 생성 및 수정 시 사용 - add함수는 파라미터가 복수의 값이라면 언패킹 후 인자로 넣어줘야함 - set함수는 수정할 때, 쓰이며 복수의 값이 들어올 때, 리스트 형태 그대로 넣어줘야함. 파라미터 2개까지만 받음. 2. objects.filter().update() -> 객체 수정후 객체 아이디를 반환! 수정 된 객체를 반환하지 않음. 시리얼라이저 update 함수 커스텀할 때 해당 부분 주의하자 3. 시리얼라이저 필드 설정 - read_only, write_only를 상황에 맞게 조절해서 역직렬화, 직렬화 에러를 막자! 하나의 시..