前提・実現したいこと
html上に検索フォームが2つあり、検索フォームごとに検索領域を変えたいです。
現在2つの内、1つがドロップダウンから条件を検索する物で、もう一つがテキストタイプとなっております。
ドロップダウンの検索フォームはmodelのskillの検索結果を
テキストタイプの検索フォームはmodelのnick_nameとself_introductionの検索結果を表示したいです。
発生している問題・エラーメッセージ
現在発生している問題は検索領域が検索フォームごとに別々にする事が出来なくて、検
索結果が混同してしまっている事です。
該当のソースコード
python
1【views.py】 2 3class AistView(generic.ListView): 4 model = User 5 template_name = 'register/top.html' 6 paginate_by = 8 7 8 def get_queryset(self): 9 result = super(AistView, self).get_queryset() 10 query = self.request.GET.get('q') 11 12 if query: 13 result = User.objects.filter(Q(skill__icontains=query) | Q(self_introduction__icontains=query)) 14 15 return result 16 17【models.py】 18 19SKILLS = ( 20 ('1', 'Webデザイナー'), 21 ('2', 'PG(フロントサイド)'), 22 ('3', 'PG(サーバーサイド)'), 23) 24 25class User(AbstractBaseUser, PermissionsMixin): 26 nick_name = models.CharField(_('ニックネーム'), max_length=30, blank=False) 27 skill = models.CharField(('スキル'), max_length=150, choices=SKILLS, blank=True) 28 self_introduction = models.CharField(_('自己PR'), max_length=500, blank=True)
html
1<div class="btn-group"> 2<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 3 スキルで絞り込む 4 </button> 5 <form class="form-inline my-2 my-lg-0" action=" " method="get" accept-charset="utf-8"> 6 <div class="dropdown-menu"> 7 <button class="dropdown-item" type="submit" value="1" name="q">Webデザイナー</button> 8 <button class="dropdown-item" type="submit" value="2" name="q">PG(フロントサイド)</button> 9 <button class="dropdown-item" type="submit" value="3" name="q">PG(サーバーサイド)</button> 10 11 </div><!-- /.dropdown-menu --> 12 </form> 13 </div><!-- /.btn-group --> 14 <form class="form-inline my-2 my-lg-0" action="" method="get" accept-charset="utf-8"> 15 <input type="search" class="form-control mr-sm-2" placeholder="キーワードで検索" name="q" aria-label="検索..."> 16 <button type="submit" class="btn btn-outline-info my-2 my-sm-0">検索</button> 17 </form>
試したこと
htmlのformのnameをqとq2に分けたり、viewsの部分にさらにifを追加しましたがうまく作動しませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/27 05:51
2019/08/27 05:52