최신글
hyeonga_code
파이선 웹구축_장고_28_검색 필터 설정 본문
반응형
- 필터 설정
1. 함수 설정 <board> > 'views.py'
'views.py'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
def index(request):
cate = request.GET.get('cate','')
kw = request.GET.get('kw','')
if kw:
if cate == 'sub':
b = Board.objects.filter(subject=kw)
elif cate == 'wri':
b = Board.objects.filter(writer=kw)
elif cate == 'con':
b = Board.objects.filter(content=kw)
else:
b = Board.objects.all()
pg = request.GET.get('page',1)
pag = Paginator(b,10)
obj = pag.get_page(pg)
print(cate, kw)
context = {
"bset": obj
}
return render(request, "board/index.html", context)
|
cs |
>> 일부 포함 단어 검색
- ooo__startswith : 시작하는 내용
- ooo__contains : 포함된 내용
=====
1
2
3
4
5
6
7
8
9
|
if kw:
if cate == 'sub':
b = Board.objects.filter(subject__startswith=kw)
elif cate == 'wri':
b = Board.objects.filter(writer=kw)
elif cate == 'con':
b = Board.objects.filter(content__contains=kw)
else:
b = Board.objects.all()
|
cs |
>> 인자 값 페이지로 넘겨주어야 함
최종 'views.py'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
def index(request):
cate = request.GET.get('cate','')
kw = request.GET.get('kw','')
if kw:
if cate == 'sub':
b = Board.objects.filter(subject__startswith=kw)
elif cate == 'wri':
b = Board.objects.filter(writer=kw)
elif cate == 'con':
b = Board.objects.filter(content__contains=kw)
else:
b = Board.objects.all()
pg = request.GET.get('page',1)
pag = Paginator(b,10)
obj = pag.get_page(pg)
print(cate, kw)
context = {
"bset": obj,
'cate' : cate,
'kw' : kw
}
return render(request, "board/index.html", context)
|
cs |
2. 카테고리 설정 <templates> > <board> > 'index.html'
'index.html'
=====
1
2
3
4
5
6
7
8
9
|
<form>
<select name="cate">
<option value='sub'>Title</option>
<option value='wri'>Writer</option>
<option value='con'>Content</option>
</select>
<input type="text" name='kw' value="{{kw}}">
<button>Search</button>
</form>
|
cs |
반응형
'Python_Django' 카테고리의 다른 글
파이선 웹구축_장고_29_검색 필터 유지 (0) | 2023.06.21 |
---|---|
파이선 웹구축_장고_기초01_Path 함수 (0) | 2023.06.20 |
파이선 웹구축_장고_27_검색 옵션 설정 (0) | 2023.06.19 |
파이선 웹구축_장고_26_페이징 기능까지 구현 (0) | 2023.06.18 |
파이선 웹구축_장고_25_페이징 페이지 번호 작성 (0) | 2023.06.17 |