-
[Django] 🤔 a 태그를 이용한 검색기능 구현중.....프로그래밍/Django & Flask 2020. 11. 30. 19:04반응형
글을 올리면 태그 표시가 되고, 태그를 클릭하면 그 태그를 가진 게시글을 출력하는 기능을 만들기 위해
wayhome25.github.io/django/2017/06/22/custom-template-filter/
다음 글을 참고했다 (감사합니다 ㅎ)
다만, 이제 해당 태그 클릭시 넘어가는 걸 만들어야 되는데
내가 애초에 구현한 검색 기능은 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에서 #은 '웹페이지 안에서 어떠한 지점을 나타낼 때 사용'하는 지표로서
어떠한 의미를 가지고 있기 때문에 온전하게 전송이 안된 것이다
어쨌든 삽질 완.
반응형'프로그래밍 > Django & Flask' 카테고리의 다른 글
[Django] 웹 소켓 공부 log (0) 2020.12.01 [Django] ImportError: cannot import name 'Class' from 'app.models' (클래스 간 circular dependency) (0) 2020.11.30 [Django] 태그 검색🔎기능 만들기 (0) 2020.11.28 [Django] objects.filter에 다중값 넣기 (0) 2020.11.27 [Django & Ajax] jquery 사용시 처음것만 실행되는 문제 (0) 2020.11.25