1

私の質問はDjango Advanced Filteringに似ていますが、別のアプローチが必要です:

概要:

  • 表: メーカー、消耗品
  • メーカーには複数の供給品があります (「供給」テーブルの 1 または 0)

複数の(20以上のチェックボックス)を持つHTMLフォームがあり、クエリセットをANDクエリで制限する必要があります(非常に標準的です)。HTML チェックボックス名は、MySQL フィールド名と同じです。私のテーブルは次のようになります。

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    |                |

疑似 SQL では、次のことを行います。

  • ユーザーが選択したチェックボックス supply2 および 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 が必要だと確信していますが、自分のニーズに合わせてビューを構築することはできません (まだ Django を学んでいます)。

4

2 に答える 2