[Django] 🤔 a 태그를 이용한 검색기능 구현중.....
글을 올리면 태그 표시가 되고, 태그를 클릭하면 그 태그를 가진 게시글을 출력하는 기능을 만들기 위해
wayhome25.github.io/django/2017/06/22/custom-template-filter/
Django 사용자 정의 필터 (Custom Template Filter)를 활용하여 인스타그램 해시태그 링크 구현하기 · 초
Django 사용자 정의 필터 (Custom Template Filter)를 활용하여 인스타그램 해시태그 링크 구현하기 22 Jun 2017 | python Django 사용자정의필터 개인적인 연습 내용을 정리한 글입니다. 더 좋은 방법이 있거나,
wayhome25.github.io
다음 글을 참고했다 (감사합니다 ㅎ)
다만, 이제 해당 태그 클릭시 넘어가는 걸 만들어야 되는데
내가 애초에 구현한 검색 기능은 POST를 이용해 값을 받은 뒤, 그 값을 기반으로 return 해주는 것이었다.
#검색
def search(request):
if request.method == 'POST':
keyword = request.POST.get('search_button')
tag = Tag.objects.filter(tag_content=keyword)
post= Post.objects.filter(tagging__in = tag).order_by('-posting_date')
if post:
post_ = post[0]
else:
post_ = None
return render(request, 'post/search_result.html', {'post':post, 'keyword':keyword, 'post_':post_})
elif request.method == 'GET':
return redirect('/')
그럴려면 input, form 태그가 필요하고 a 태그로는 불가능...
그래서 a 태그 안에 있는 값을 어떻게 받아올 수 있을까 고민하다 javascript가 생각났다!
function getA(a) {
var getA = $(a).text();
$.ajax({
type: "POST",
url: "{% url 'search' %}",
data: {
'tag' : getA,
'csrfmiddlewaretoken': '{{ csrf_token }}'
},
dataType: "json",
})
}
'<a onclick="getA(this)" href="#">'+tag.tag_content+'</a>', content)
로 바꾸고 또 헤맸는데..... 원인을 알아냄
바로 태그를 저장할 때 '#'도 같이 저장했기 때문이었다..
이 # 때문에 url에서 연결이 안됐던 것이었다 ㅜㅜ.... # 떼니까 아주 잘됨!!!!!
url에서 #은 '웹페이지 안에서 어떠한 지점을 나타낼 때 사용'하는 지표로서
어떠한 의미를 가지고 있기 때문에 온전하게 전송이 안된 것이다
어쨌든 삽질 완.