2024/09 30

개발 일지 37 - 게시글 이미지 추가..3

이제 ajax에서 url로 연결한 뷰함수를 작성할 차례이다  @csrf_exempt # CSRF 보호를 비활성화 (API 엔드포인트에 필요할 수 있음)def post_upload_image(request): if request.method == 'POST' and request.FILES.get('image'): image = request.FILES['image'] fs = FileSystemStorage() filename = fs.save(image.name, image) file_url = fs.url(filename) file_url_with_book = f"/book/media/{filename}" return ..

장고 2024.09.20

개발 일지 36 - 게시글에 이미지 추가하기..2

어제 readimage함수가 실행이 된다고 하고 글을 마무리 지었다. const readImage = function () { const file = this.files[0]; const formData = new FormData(); formData.append('image', file); // AJAX 요청 $.ajax({ url: "{% url 'post_upload_image' %}", // 이미지 업로드 URL type: 'POST', data: formData, processData: false, // FormData 객체를 처리하지 않도록 설정 contentType: false, // 기본 콘텐츠 타입을..

장고 2024.09.19

개발일지 35 - 게시글에 이미지 추가하기 - 1

tinymce를 사용해서 게시글을 저장하는 방법을 사용했다.  글 굵기나 글씨체 간격, 선 긋기, 다양한 기능이 포함이 되어있는 툴이었다. 이제 이미지를 업로드하는 기능을 추가해주려고 한다.  tinymce.init({ selector: '#content', // 사용할 텍스트 영역의 id plugins: image_code, //plugins: 'image code', license_key: 'gpl', toolbar_mode: 'floating', file_picker_types: 'image', plugins을 image_code로 바꿔주니까 insert부분에 이미지를 추가할 수 있는 기능이 생겼다.  하지만 내가 원하는 모습이 아니어서 직접 새로 만들어줘야 겠다 ..

장고 2024.09.18

개발일지 34 - 단축키 설정 2

정보 박스가 고정이 되어있어서 스크롤을 내릴때 같이 내려올 수 있게 위치정보를 바꿔주는 자바스크립트 코드를 구현했다.  window.addEventListener('scroll', function() { const shortcutBox = document.querySelector('.shortcut-box'); shortcutBox.style.top = (window.scrollY + 20) + 'px'; // 스크롤에 따라 박스 위치 조정}); shortsubBox의 top값을 스크롤 할때 변경되는 위치값과 20을 더해서 같이 내려가게 구현했다.  메인화면에는 sidebar 부분에 단축키 박스를 위치시켰다.    로그인 컨테이너 아래에 위치할 수 있게 배치했다..

카테고리 없음 2024.09.17

개발 일지 33 - 단축키 설정

게시글에서 글을 보다가 마우스로 움직이는 것이 순간 너무 귀찮아져서 단축키 기능을 만들면 좋을 것 같다는 생각이 들었다. 게시글 내부에서 바로 home으로 갈 수 있는 단축키는 1, 맨 아래로 스크롤을 내리는 키는 u, 맨 위로 스크롤을 올리는 것은 o로 설정을 했다. 코드는 아래와 같이 구현을 했다.  function goHome() { window.location.href = '/book'; // 홈 화면 URL (예: '/')}function scrollToBottom() { window.scrollTo(0, document.body.scrollHeight); // 페이지 가장 아래로 스크롤}function scrollToTop() { window.scrollTo(0, 0); ..

장고 2024.09.16

개발 일지 32 - 댓글 프로필 이미지 마무리

이미지를 출력이 성공적이다. 이제 위치만 수정해주면 된다.  아무렇게나 위치하고 있는 이미지를 닉네임 바로 옆에 위치를 시키고 싶었다. 가장 먼저 시도했던 방법은 margin을 이용하는 것이었다.  alt="Profile Picture" style="cursor: pointer; width: 30px; height: 30px; border-radius: 30%; margin-right: 500px; " > 오른쪽 margin을 큰 값으로 주면서 위치를 옮겼다. 잘 해결된줄 알았는데 문제는 대댓글을 잘성하면서 생겼다.댓글보다 한 칸 들여써지는 대댓글에 margin 500은 이미지가 닉네임 영역을 침범하게 했다. 이 방법은 아니겠다 싶어서 다른 방법을 고민한 것이 닉네임과 이미지를 div로 묶는..

장고 2024.09.15

개발 일지 31 - 댓글 프로필 이미지 추가..3

생각하지 못한 문제가 발생했다.  '가'회원과 '나' 회원이 있다고 하자.가 회원으로 접근했을때 나 회원의 프로필 이미지가 보이지 않고 가 회원의 프로필 이미지가 보이는 문제가 발생했다. 어떻게 이 문제를 해결을 해줄지 고민하다가 아래 같은 방법을 사용했다. try: user_profile = UserProfile.objects.all()except UserProfile.DoesNotExist: user_profile = None UserProfile의 모든 값을 받아서 post_detail로 넘겼다.  그리고 반복문을 사용해서 댓글을 작성한 작성자와 반복되어 들어오는 UserProfile의 유저값이 일치할때만 이미지를 출력하는 코드를 구현했다. {% for profile in ..

장고 2024.09.14

개발 일지 30 - 댓글 프로필 이미지 추가 ..2

어제 생겼던 오류를 해결할 방법은 어렵지 않았다. 새로 만든 함수를 사용을 해주는 것이 아닌 기존에 사용하던 함수를 이용해주는 방법이었다.  user_id = request.session.get('user_id') try: user_profile = UserProfile.objects.get(user_id=user_id) except UserProfile.DoesNotExist: user_profile = None # 프로필이 없으면 None으로 설정 context = { ...... 'user_profile':user_profile, } 그 후 post_detail에서 user_profile값을 comment_templ..

장고 2024.09.13

개발 일지 29 - 댓글 프로필 이미지 추가

로그인한 후 오른쪽의 회원 정보  창에 프로필 이미지를 추가해주고 해당 이미지를 댓글에서 그대로 사용할 수 있게 구현을 하고 싶었다.  view.py에 새로운 함수를 구현을 하고 url을 연결하고 comment_template.html로 보내주는 작업을 진행했다. def comment_profile_image(request): if request.method == 'POST': print("comment_profile_image 호출됨") # 호출 확인용 로그 user_id = request.session.get('user_id') try: user_profile = UserProfile.objects.get(user_id=user_id) ..

장고 2024.09.12

개발 일지 28 - 프로필 이미지 오류..3

더이상 수정할 것도 없을거라 생각했지만 완전히 틀렸다.    {% csrf_token %} user_profile이 부분이 아주 말썽이었다.  원래는 UserProfile DB에 있는 user의 값을 받아와서 경로를 사용해야 하는 건데 request.user을 사용할 수 없으니 큰 문제였다.  고민 끝에 생각해낸 해결책은 UserProfile의 객체를 탬플릿 파일로 전송을 시키는 것이었다.  user_id = request.session.get('user_id') try: user_profile = UserProfile.objects.get(user_id=user_id) except UserProfile.DoesNotExist: ..

장고 2024.09.11