emluy 개발 일기

특허관점기업분석 - ajax로클릭 시 새로고침 안하고 DB에서 값 가져온 후 띄워주기 본문

웹 개발/project

특허관점기업분석 - ajax로클릭 시 새로고침 안하고 DB에서 값 가져온 후 띄워주기

yulme 2020. 6. 18. 00:25
SMALL

0.

- jquery CDN 을 head태그에 추가

- $ pip install simplejson

-views.py 상단에 import json 

 

1. Ajax 이용해서 클릭한 값을 views.py로 넘겨주기

2. 클릭한 값을 이용해서 model에 저장된 데이터 가져오기

3. views.py에서 보낸 데이터를 다시 template에 넘겨주기 (이때 return JsonResponse 사용함)

* HttpResponse의 subclass = JsonResponse

 

================================================================================

참고

*밑에 참고에서 참고한 것

- id 속성 값을 views.py에서 가져온 값으로 하는 법 id="{{views.py에서 넘겨준 딕셔너리value값}}"

chohyeonkeun.github.io/2019/06/12/190612-django-ajax-checkbox/

 

조누스의 걸음마 개발로그

안녕하세요 열정괴물 신입개발자 조누스의 개발로그입니다.

chohyeonkeun.github.io

 

* 밑에 참고에서 참고한것 

- 전체적인 ajax 흐름 잘 설명해놓음 그러나 코드가 오류 남 

medium.com/@junekim_44613/django-스터디-4주차-배포-m-n-모델-ajax-다뤄보기-37ef3a66e446

 

 

[Django 스터디] 4주차 | 배포, M:N 모델, ajax 다뤄보기

배포하기, M:N 모델, ajax에 대해서

medium.com

* 밑에 참고에서 참고한것

- ajax로 data를 views.py에 전달한 후 그 데이터 이용해서 다른 칼럼의 값 response 해준 후 html파일에서 다시 띄울 때

-> success 와 error 작성하는 법 가져옴 

likelion-kgu.tistory.com/category/Javascript/AJAX

 

'Javascript/AJAX' 카테고리의 글 목록

경기대 출신 멋사인이 운영하는 코딩블로그

likelion-kgu.tistory.com

 

* 밑에서 참고한 것

- div 태그에 사용자 지정 속성값 넣기 <div data-value="내가지정할 값">

http://www.nextree.co.kr/p10155/

 

jQuery: data() 이해와 활용

jQuery를 조금이나마 접해보신 분들은 다양한 방법으로 DOM을 select하거나 이벤트 제어, Ajax통신 등 jQuery가 지원하는 편리한 기능에 많이 익숙해지셨을 거라 생각됩니다. 이번에 준비한 글은 매우 �

www.nextree.co.kr

 

 

오류나는 부분

1. 값 가져가서 model에 있는 데이터테이블에서 컬럼 값이 가져온 값과 같은 행의 다른 컬럼값 가져오는게 안됨

1-1. 오류원인 예측

 - 값 가져온거 google 검사에서 Network의 response 보면 patent = '\n         H01            \n' 이렇게 돼있음

 - 터미널에도 가져온 값이 patent=%0A%02%02%02%02%02%02%02%02%H01%02%02%02%02%02%02%02%02 이럼

1-2. 생각해본 해결책

 - div태그에 name속성을 지정해주고 script에서 $(this).attr('name') 으로 가져와보면 어떨까 -> name은 unique해야해서 중복되니까 못씀 ㅠㅠ

 - div태그에 data- 속성을 이용해서  data-value속성을 만들고 값을 넣어주고 $(this).data('value') 이렇게 가져와보면?

이것이 해결책!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

 

 

헤매던 부분

1. views.py에서 값 가져와서 다시 html에 띄워줄 때 

만약 views.py에서 보낸 값이 dictionary형태인 {'explain':explain} 일때

반드시 위에처럼 data['explain']과 같이 key값에 작은 따옴표 해줘야함 이거 때문에 안됐었음 매우 화났음

 

 

 

 


ajax로 요청후 views.py로 여러개 객체 가져와서 html에 띄워주기

ajax 두번 

 

 

1. table 행을 동적 생성 할때 <td></td> 여러개 생성해준 뒤 여러개 생성된 td를 <tr></tr>로 감싸는 법 가져옴

https://araikuma.tistory.com/609

 

[jQuery] 요소의 조작 - 요소의 추가 .append() .prepend() .before() .after()

기존 요소의 내부에 추가 다음 메소드를 사용하면 기존 요소의 내부에 새로운 요소나 콘텐츠를 추가할 수 있다. 메소드 설명 .append() 선택된 요소의 마지막에 새로운 요소나 콘텐츠를 추가한다.

araikuma.tistory.com

2. 여러개 객체를 html 로 JSON으로 넘겨줄 때, 평소 하던것처럼 ipc_detail = Patentdetail.objects.all().filter(patent=ipc) 이렇게 한 후 ipc_detail에 담긴 여러 객체들을 return에 딕셔너리로 넘겨주면 에러 뜸 => not json serializable 이라고 오류남

https://in0-pro.tistory.com/m/25?category=811477

 

not json serializable 오류 해결 방법

json을 사용하는데 typeerror: object of type queryset is not json serializable 오류가 떴다. json 모듈이 해당 오브젝트를 제대로 인식하지 못하는 문제로 보였다. 구글에 오류를 검색해보니 list로 감싸서 해..

in0-pro.tistory.com

 

반응형
Comments