Code B Django 5번 글, 프로젝트 9일차 (화)
# 문제의 원인을 정확히 이해하고 해결했다.
2022.04.27 - [프로젝트/Django - How Dimt?] - Django poj.c B6) error) blank input ValueError 해결 - 10일차
1. 주류가격정보 테이블 구현 (1)
어제 작성하고 마이그레이션 한 주류 가격 정보 모델
django/admin을 통해 몇 개의 데이터를 입력
데이터를 가져오는 과정은
java에서 DAO, VO, SQL 쿼리를 이용한 방법보다 훨씬 간편했다.
중간에 Model field를 몇번 변경했는데,
이때 고칠 코드가 거의 없어서 좀 신기했음.
2. 주류가격정보 테이블 구현 (2)
더미 데이터와 리얼 데이터를 구분하기 위해 .filter 함수와 .exclude 함수를 사용했다.
더미/리얼 레코드 사이에 서로 다른 css 스타일을 주기 위해 거의 흡사한 코드가 두 번 반복되었다.
{% block %} / {% endblock %} 을 써볼까 고민했으나 코드 가독성이 너무 떨어질 것 같아 기각.
자바스크립트를 잘 이용하면 깔끔한 코드가 나올 것 같은데,
js 기초만 떼고 안 써 본 지 너무 오래돼서 일단 미뤄 두었다.
더미/리얼 레코드의 인덱스 번호 연결은
forloop.counter|add:price_list.count
를 이용해서 해결했고 만족스럽다.
3. 봉착한 문제
POST method를 이용한 레코드 Create를 구현 중에 문제 봉착했다.
Model의 Integer 필드 속성에 blank=True, null=True를 주었음에도
blank input을 거절하는 상황이다.
( CharField는 blank input 에도 문제없이 잘 동작한다 )
나는 Form 클래스 없이 직접 view.py 에서 POST로 넘어온 값을 모델에 넣으려고 시도했다.
그리고 책에서 본 코드는 forms.ModelForm을 상속한 Form 클래스를 따로 작성했고,
작성한 클래스에 데이터를 먼저 넣은 후 유효성 검사를 거쳐 .save() 하고 있었다.
당장 드는 생각은
Django 가 내가 머릿속에 그리는 방법과는 다르게 움직이거나,
forms.ModelForm을 거치는 게 원래의 규칙 이거나.
내일은 책의 코드를 참고해서 다시 작성해 볼 생각.
4. 현재 작성 중인 view.py 코드
'프로젝트 > Django - How Dimt?' 카테고리의 다른 글
Django poj.c B7) Create !! / forms를 이용한 유효성 검사- 11일차 (0) | 2022.04.29 |
---|---|
Django poj.c B6) error) blank input ValueError 해결 - 10일차 (0) | 2022.04.27 |
Django poj.c C1 ) ORM/ 주류가격정보 model/ 마이그레이션 - 8일차 (0) | 2022.04.25 |
Django poj.c B4 ) account 기능 구현 중 - 6일차 (0) | 2022.04.24 |
Django poj.c B3 ) 제로베이스!! - 5일차 (0) | 2022.04.23 |
댓글