さまざまな検索 (2/4)
作成:2018-01-14 09:00
更新:2018-01-14 09:00
更新:2018-01-14 09:00
■数値の比較演算
数値を使った検索もよく使われる機能の一つでしょう。数値の場合、値の比較を行って検索する処理が非常に多いでしょう。
・値よりも大きい
・値と等しいか大きい
・値よりも小さい
・値と等しいか小さい
これらは、<>=といった記号で2つの値を比べる比較演算で絞り込みを行うものです。値を比較して、指定の値より大きいもの、小さいものなどを取り出すのですね。
では、これもサンプルを挙げておきましょう。テンプレートはindex.htmlをそのまま使います。
・値よりも大きい
項目名__gt=値
・値と等しいか大きい
項目名__gte=値
・値よりも小さい
項目名__lt=値
・値と等しいか小さい
項目名__lte=値
これらは、<>=といった記号で2つの値を比べる比較演算で絞り込みを行うものです。値を比較して、指定の値より大きいもの、小さいものなどを取り出すのですね。
では、これもサンプルを挙げておきましょう。テンプレートはindex.htmlをそのまま使います。
views.pyのindex関数を下のリスト欄のように修正しましょう。そして、hello/urls.pyを開き、urlpatternsを以下のように修正して下さい。
urlpatterns = [これは、普通のテキスト検索に、ageによる絞り込みを追加した例です。/helloとアクセスすると全レコードが表示されますが、/hello/年齢 というようにアクセスすると、その年齢以下のレコードだけを表示します。例えば、/hello/30 とすれば、ageの値が30以下のものだけを表示します。
path('<int:num>/', views.index, name='index'),
path('', views.index, name='index'),
]
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
def index(request,num=1000): if request.method == 'POST': name_str = request.POST['name'] data = Person.objects.all().filter(name=name_str) else: data = Person.objects.all().filter(age__lte=num) name_str = '' context = { 'current_name': name_str, 'msg': 'Personのリスト', 'data': data, } return render(request, 'hello/index.html', context)
※関連コンテンツ