내 질문은 Django Advanced Filtering과 유사하지만 다른 접근 방식이 필요합니다장고 : 사용자 입력에 제한 검색어 세트 (체크 박스)
추상 :
- 테이블 : 제조 업체, 공급
- 제조업 (다중 공급이 1 또는 0 "공급"표에서)
로 쿼리 세트를 제한해야하는 다중 (20 개 이상의 확인란) HTML 양식이 있습니다.검색어 (표준). HTML 체크 박스 이름은 MySQL 필드 이름과 동일합니다. 내 표는 다음과 같습니다
이제 의사 SQL의mysql> explain supply;
+----------------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| manufacturer_id | int(11) | NO | MUL | NULL | |
| supply1 | tinyint(1) | NO | | NULL | |
| supply2 | tinyint(1) | NO | | NULL | |
| supply3 | tinyint(1) | NO | | NULL | |
| [...] | tinyint(1) | NO | | NULL | |
| supply20 | tinyint(1) | NO | | NULL | |
, 내가 원하는에 :
- 사용자 선택 체크 박스 공급 장치 2 및 supply14 :
SELECT * FROM supply WHERE supply2 = 1 AND supply14 = 1;
- 사용자 선택 체크 박스의 supply1, supply9 및 supply18 :
SELECT * FROM supply WHERE supply1 = 1 AND supply9 = 1 AND supply18 = 1;
나는 kwargs가있는 QuerySet이 필요하다고 확신하지만 필자의 필요에 따라 뷰를 구성 할 수 없다 (여전히 Dj ango).
여기 데이터 모델이 약간의 조정을 사용할 수 없습니까? 20 개의 행을 가진 공급 테이블과 이들을 연결하는 중간 테이블 (즉, ManytoMany (Supply) 또는 그와 유사한 것)을 원할 수 있습니다. 그런 다음 20 개의 확인란이 아닌 여러 개의 선택 필드 만 가질 수 있습니다 (다른 이유로는 필요하지 않습니다). –
@JamesR과 동의합니다. 다른 공급품이 필요한 경우 어떻게 할 것입니까? 그것이 ManyToMany 관계입니다. – aherok
당신이 옳습니다. 데이터베이스 레이아웃을 수정해야합니다. @ JamesR : 답변으로 의견을 게시 할 수 있다면 받아 들일 것입니다. – weeheavy