분류 전체보기
-
ManyToManyField 사용법 및 장점Django 2022. 1. 9. 20:16
1차 프로젝트 진행 중에 팀원분께서 제품 상세페이지를 맡아서 진행 중이셨는데 위의 products 테이블의 id 값을 받아서 sizes 테이블의 값 불러오는 것을 어려워하셨습니다. 위의 모델링을 기반으로 하여 사이즈 값을 가져오려면 아래처럼 복잡한 과정을 거쳐야 가능하다고 생각합니다. 주의해야 할 부분 1. 조건에 해당하는 결괏값들이 여러 개일 거라 생각해서 filter를 사용했으니 기본적으로 QuerySet으로 나올 것이라고 예상해야 합니다. QuerySet의 경우에 어떻게 QuerySet을 제거하고 안에 든 값만 뺄 수 있을까 엄청 고민하면서 이것저것 시도해보다가 위와 같은 경우에서는 product_list[0]을 찍어보는 게 도움이 되었습니다. QuerySet에 대해 공부하셔도 헷갈리시다면 저처럼 ..
-
TypeError : Field 'id' expected a number but got <User : User object (1)>Django 2022. 1. 5. 08:32
사이드 프로젝트로 'Zara' 클론 코딩을 하고 있습니다. 그중에서 장바구니 앱을 하던 중에 마주한 에러 메시지에 대해 알아보고자 합니다. 대부분의 에러메세지가 그렇지만 특히 이번 것은 조금만 읽어보면 에러 메시지에 답이 다 담겨 있습니다. 제가 'id'에 해당하는 값(number)을 불러오겠다 하고 그곳에 'User' 객체를 가져와서 생긴 에러 메시지입니다. 장바구니 앱을 처음 작성해본 것이라 지저분하고 불필요한 부분이 많아서 보시기 불편하시겠지만 조금 양해 부탁드립니다. 에러 메시지가 발생한 이유와 어떻게 그리고 왜 이렇게 해결된 건지를 집중적으로 보신다면 좋을 것 같습니다. 장바구니 앱을 모델링한 것입니다. 처음에 유저 1명당 장바구니를 1개만 활성화시키고 싶어서 1:1 관계인 OneToOneFie..
-
UUID vs CharField의 max_lengthPython 2022. 1. 2. 22:38
'ZARA' 사이트를 막 클론코딩하기 시작했을 때인데 모델링하던 중에 주문 앱에서 고유한 값이어야 하는 '주문번호'가 있었습니다. 그런데 이 부분을 CharField로 했어서 중복되지 않는 임의의 문자로 바꿔야 했습니다. 그래서 아래처럼 CharField(max_length=20)로 할 경우와 UUID 중 더 효율적인 방법에 대해 고민하고 찾아봤습니다. 사실 이런 질문을 하신 이유에 대해서 어렴풋이만 그 의도를 짐작할 수 있었어서 다시 한번 여쭤보고 진행을 했습니다. 멘토님께서 조언을 주신 덕분에 'UUID'에 대해 찾아봤습니다. UUID - 36개 문자(32개의 문자와 4개의 하이픈) 8-4-4-4-12 - 가장 많이 쓰이는 버전은 버전4 (시간+랜덤) - 128비트의 숫자, 32자리의 16진수로 표현..
-
Python dictionary get 메소드 vs Django objects get 메소드Python 2022. 1. 2. 01:35
python dictionary get 메소드 딕셔너리의 키에 해당하는 값을 가져올 때 두가지 방법이 있습니다. 1. get() 방식 2. 대괄호 방식 두 가지의 차이점에 대해서도 모른채 코드를 작성했었는데 너무나 부끄럽습니다.. 그래서 오늘 이렇게 정리해서 확실히 알고 코드를 작성해야겠습니다. 키에 해당하는 값이 있을 때는 같은 값을 출력합니다. 그러나 해당 키가 존재하지 않는 키라면 완전 다른 결과를 보여줍니다. 우선 아래의 코드들이 어떤 차이점이 있는지 보시죠. 1. get() 방식 - 값이 있을 때 : 키에 해당하는 값 출력(예시 : 3번째 줄) - 값이 없을 때 : 'None'으로 출력(예시 : 4번째 줄) - 값이 없을 때 : default 값 출력(예시 : 5번째 줄) 2. 대괄호 방식 - ..
-
Django 테이블 이름 변경 및 삭제 후 마이그레이션시 에러Django 2021. 12. 28. 13:08
'NodeNotFoundError', 'No migrations to apply', 'Table doesn't exist' 등의 에러를 한번의 작업으로 맞딱뜨리는 것은 그리 어려운 일이 아니었습니다...ㅎㅎ 그래서 이런 에러들이 왜 발생했고 어떤 이유로 해결된 것인지 차근차근 정리해보고자 합니다. 우선 'postings'라는 앱을 생성하고 models.py 작성을 끝내고 마이그레이션 한 후에 DB를 봤는데 'postings_posting'이라고 되어 있어서 지저분하고 중복된다는 느낌이 강하게 들어서 바꾸고 싶었습니다. 물론 에러가 발생하면 어쩌지 라는 생각도 들었지만 에러가 발생하면 찾아서 해결하면 되겠지라고 생각해서 우선 DB에서 직접 테이블 이름을 바꿔봤습니다. mysql> ALTER TABLE po..