やりたいこと
データベースにある記事を検索し、いくつかの方法で並び替えができるようなページを作りたいと思っています。
検索の方はできたのですが、並び替えボタンの実装をどのようにするのが良いのかわかりません。
-------------- 検索条件: 投稿日:x月x日 タイトル:キーワード [検索submitボタン] -------------- 並び替え|新しい順 閲覧数順 ... -------------- 検索結果 記事1 記事2
例えば上のようなレイアウトで、新しい順でもともとソートされた検索結果が出ている場合に、閲覧数順というボタンを押すと検索に引っかかっている記事をそのまま順番のみ変えて表示するようにしたいです。
さらに、並び替えで閲覧数順になっている時に検索条件を変更して検索ボタンを押した時に表示される検索結果はそのまま閲覧数順で表示されるとうれしいです。
アイデア
並び替え選択肢を検索条件フォームの一部としてラジオボタンで実装し、並び替え選択肢を押すと同時に submit されるようにしたらいいのかなと思いました。
<form method="POST" action="..." name="form1"> <input type="radio" ... onclick="document.form1.submit();"> </form>
(参考)
しかし、ラジオボタンの選択と同時に自動でサブミットされるのはあまり綺麗なコードではない気がしました。このアイデアで何か不具合がでたりしますでしょうか。または、スタンダードな手法等あれば教えていただけると幸いです。
クエリパラメータを使えばいいのかなとも思いましたが、その場合検索条件の POST データが送れないのでだめか、、という結論になりました。
使っているフレームワーク
Djangoを使っています。
オブジェクトのソートは model.objects.sort_by("field") で可能であることは把握しています。わからないのは HTML ファイルと Python ファイルの間のデータの受け渡し方法です。
あなたの回答
tips
プレビュー