일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- orm 최적화
- materialized
- optimization page
- qpa_plugin
- QApplication
- django rank
- django erp
- qwindows.dll
- django drf
- pip 오류
- uiload
- tensorflow
- Self ERP
- pyside6 ui
- channels
- 재고 관리
- pyside6
- 페이지 최적화
- 장고
- 중량 관리
- 파이썬
- django role based
- pip 설치
- ERP
- django test
- 장고로 ERP
- django
- test drive development
- query 최적화
- Python
- Today
- Total
취미삼아 배우는 프로그래밍
토이프로젝트) 생산관리 시스템 - 폼 작성 본문
이번번엔 폼을 작성하려 한다.
장고는 MTV 패턴답게
모델에 따라서 폼 내용을 변경시켜주는 작성 모듈이 있다.
그래서 이걸 사용하면
모델이 추가되면 폼도 자동으로 추가되고 그런다.
이게 좋은 점도 있지만 단점도 많다
- 차라리 그냥 타이핑으로 Form을 작성하는게 나을 때가 있다.
- attrs, widgets을 할당해주는게 너무 귀찮고 번거롭다.
- 장고는 Bootstrap 기준으로 작성돼, 조금 커스텀이 필요할 때가 있다.
- 레이아웃 짜는게 좀 귀찮을 수 있다.
나의 경우는 지금 Materialized css 를 기반으로 작성하고 있기 때문에,
<input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
<label for="vehicle1"> I have a bike</label><br>
<input type="checkbox" id="vehicle2" name="vehicle2" value="Car">
<label for="vehicle2"> I have a car</label><br>
<input type="checkbox" id="vehicle3" name="vehicle3" value="Boat">
<label for="vehicle3"> I have a boat</label><br>
W3School내 소개된 기본적인 체크박스를 나타내는 구문과
<label>
<input type="checkbox" checked="checked" />
<span>Yellow</span>
</label>
Materialized내에 소개된 체크박스를 나타내 주는 구문이 차이가 있다.
그래서
이걸 해결하기 위해선, 직접 체크박스를 폼에 넣어서 작성해 주는 방법도 있겠지만,
간단히 커스텀을 해주어도 됐다.
커스텀 관련 글 :
[Django] widget (1) widget의 원리와 widget 만들어보기 - 실시간 글자수 표시 widget
input 태그는 type 속성에 따라 여러 모습을 보여줍니다. text 일 때는 글을 입력할 수 있도록, date 일 때는 날짜를 지정할 수 있도록, password 일 때는 비밀번호를 입력할 수 있도록 하는 등 다양한 type이 있..
ssungkang.tistory.com
구세주느님..
체크박스위젯을 컨트롤을 누르고 보면,
아래처럼 템플릿이 다 할당돼 있다.
저쪽 경로를 타고 들어가서 보면
결국 Input.html을 인클루드 시키고 있는데,
이걸 입맛에 맞게 바꾸면 된다.
template html
<label>
<input type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value|stringformat:'s' }}"{% endif %}{% include "django/forms/widgets/attrs.html" %}>
<span></span>
</label>
<br>
CheckboxInput을 상속받아 템플릿 이름만 바꿔준다
class materialized_check_box(CheckboxInput):
template_name = 'wall/components/materialized_checkbox.html'
이 템플릿 이름만 바꿔준걸 위젯으로 등록시킨다..
class Meta:
....
....
widgets = {
'addings_manufacturing':materialized_check_box,
}
크
'코드 자가리뷰(장고)' 카테고리의 다른 글
초등학교 게시판 만들기 -3 (0) | 2020.04.23 |
---|---|
초등학교 학교게시판 만들기. (0) | 2020.04.19 |
초등학교 학교게시판 만들기 (0) | 2020.04.18 |
django-tables 작성에 관한 고찰 (0) | 2020.03.30 |
토이 프로젝트) 생산관리 시스템 (0) | 2020.03.12 |