원래는 어떤 모델의 instance를 생성할 때 foregin key field가 있으면 .get()으로 객체를 가져와서 넣어주거나 serializer을 통해 넣어줘야했었다. 근데 최근에 일단 validation을 통과하지 못할 객체를 만들고, custom 전처리 함수를 통해 필드들을 전처리 후에 validation과 생성을 하고 싶은 상황이 생겼다. 근데 이 때 프론트에서 주는 데이터를 일단 instance에 넣고, 전처리 함수와 validation을 통해서 valid한 instance가 되게 하려는데 foreign key field가 integer가 아닌 model을 받아야 된다고 예외를 던져줘서 방법을 찾아봤더니

{foreign_key}_id라는 field가 따로 있어서 그 필드에 일단 integer을 넣고, 생성을 하게 하면 django model이 foreign key field에 {foreign_key}_id라는 걸 참조해서 model을 넣어준다. serializer을 통하지 않고, 객체를 따로 불러와서 넣어주지 않으면서 integer로 일단 필드값을 넣어주고 싶을 때 이 방법을 사용하면 괜찮을 것 같다.

'Programming' 카테고리의 다른 글

django를 쓰다가 spring을 쓰면서 느낀 점  (0) 2022.05.14
soft delete를 해보면서 느낀 점  (0) 2022.04.16
django의 transaction  (0) 2022.02.03
spring mvc vs. django mvc(mvt?) 패턴  (0) 2022.02.02
python decorator와 spring AOP  (0) 2022.02.01

+ Recent posts