顧客一覧ページで、会社名の検索機能を設けたい。
template
<form action="/client/1" method="post"> {% csrf_token %} <div class="form-group row"> <div class="col-md-10"> <input type="text" class="form-control" name="name" placeholder="検索する会社名を入力してください"> </div> <div class="col-md-2"> <button class="btn search-btn" type="submit">検索</button> </div> </div> </form> <span>{{ query }}</span>
– if(request.method==’POST’)でgetとpostを分岐させる
– 検索は *.objects.filter(column=value)と書く
– あいまい検索には(column__contains=value)と書く
– nullで検索された場合は、メッセージを表示させたくないので、最初の分岐で、and request.POST[‘name’]も追加する
views.py
def client(request, num=1): if(request.method=='POST' and request.POST['name']): name= request.POST['name'] data = Clients.objects.filter(name__contains=name) page = Paginator(data, 3) params = { 'data' : page.get_page(num), 'query' : "会社名に「" + name + "」を含む検索結果" } else: data = Clients.objects.all() page = Paginator(data, 3) params = { 'data' : page.get_page(num) } return render(request, 'sales/client.html', params)
うん、GoodJob! 意外と簡単にできました。
得意先一覧ができたので、続いて見積管理を作っていきます。
得意先が複数の見積を持つというhasManyのモデルをどう作るか考えなければなりません。