전체 글 372

KKU likelion django project (7)

게시글 삭제가 완료되었다면 댓글 삭제기능을 만들어 보겠습니다. @login_required def comment_delete(request, post_pk, pk): post = get_object_or_404(Post, pk=post_pk) comment = get_object_or_404(Comment, pk=pk) user = request.user.get_username() context = {'post': post,} content = request.POST.get('content') if user == comment.comment_writer: comment.delete() return redirect('detail', post_pk) else: messages.info(request, '아이..

KKU likelion django project (6)

이번 시간에는 조금 더 나아가 세부적인 부분을 만들겠습니다. 먼저 삭제와 수정을 글씨가 아닌 저번에 static에 넣은 이미지로 바꿔보겠습니다. postapp/templates/detail.html 되게 간단합니다. 수정과 삭제가 있던 부분에 static에 있는 이미지의 주소를 걸어주면 짜잔 글씨가 이미지로 바뀌어 정상작동이 되는 모습을 확인할 수 있습니다. 이렇게 수정과 삭제 버튼을 만들어 주었다면 더 나아가 모든 사용자가 아닌 작성자와 현재 접속자가 일치할 경우에만 수정과 삭제 버튼이 나오도록 해보겠습니다. 먼저 detail.html 맨 위에 style 속성을 추가하여 줍니다. .hidden { display: none } 이 style는 hidden 숨기라는 속성입니다. 이 속성을 이제 이렇게 수정..

KKU likelion django project (5) 번외

지난 강의 이어서 지난 강의의 문제점 postapp/templates/new.html 새로 글을 쓸때의 문제점이 발생하였다. 이미지란 파일을 올리기 위해서는 form의 method가 post여야 하고 enctype="multipart/form-data" 가 꼭 설정이 되어있어야 한다. 저번 강의에서는 이러한 설정을 form말고 div에 넣어주어 오류가 생겼었다. 또한 method가 post이니 csrf_token을 꼭 설정하여 주자 {% csrf_token %} 제목: 본문: 이미지 : 이제 views.py에서 문제점이 발생하였다. def create(request): post = Post() post.title = request.POST['title'] post.body = request.POST['b..

KKU likelion django project (5)

오늘 목표 1) 사진 업로드 2) 디자인 구글 드라이브에 있는 저번 시간까지 진행한 likelion_4 압축파일과 img폴더를 다운로드하여 수업을 준비합시다. 저번 시간까지의 내용 로그인하여 접속을 한 뒤에 글과 댓글 그리고 좋아요 기능까지 완성되었습니다. 이제 글만 쓸수있는 프로젝트에서 사진까지 넣을수있게 설정을 해줍니다. 먼저 media파일과 static파일을 사용할 수 있게 pillow를 설치하여 줍시다. pip install Pillow pillow를 설치하였다면 static파일을 담을 static폴더를 postapp 아래에 생성하여 줍니다. 이제 settings.py에 static의 경로를 알려주게 추가합니다. STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'po..

KKU likelion django project (4)

--- title: "LikeLion KKU like class" date: 2019-10-09 00:00:00 -0400 categories: jekyll update --- # like 추가하기. - 유저는 여러 개의 메모에 좋아요를 할 수 있고, 메모는 여러 유저로부터 좋아요를 받을 수 있다. ### models.py 추가 및 수정 ``` from django.contrib.auth.models import User name_id = models.ForeignKey(User, on_delete = models.CASCADE) likes = models.ManyToManyField(User, related_name='likes') @property def total_likes(self): return..

KKU likelion django project (3)

--- title: "LikeLion KKU postedit class" date: 2019-10-10 00:00:00 -0400 categories: jekyll update --- # 게시글을 수정해보자. ### templates폴더 안에 edit.html 생성 하기 ``` {% csrf_token %} 제목: 본문: ``` ### models.py 추가 및 수정 ``` def edit(request, post_pk): post = Post.objects.get(pk=post_pk) if request.method == 'POST': post.title = request.POST['title'] post.body = request.POST['body'] post.pub_date = timezone.d..

KKU likelion django project (2)

--- title: "LikeLion KKU 두 번째 Review" date: 2019-10-04 00:00:00 -0400 categories: jekyll update --- # 두 번째 복습 시간 리뷰 ### 글쓰기와 사용자를 관리하며 생긴 오류와 궁금증 - 회원가입시 동일한 아이디가 있을 경우에 대하여 기존 classlion 강의를 보며 작성한 코드를 보면 ``` def signup(request): if request.method == 'POST': if request.POST['password1'] == request.POST['password2']: user = User.objects.create_user( request.POST['username'], password=request.POST..

KKU likelion django project (1)

--- title: "LikeLion KKU 첫 Review" date: 2019-10-04 00:00:00 -0400 categories: jekyll update --- # 안녕! 오랜만에 코딩을 하여 어려워할 여러분들에게 이 글들은 수정 예정! 또한 블로그도 리뉴얼될 예정입니닷 오타와 맞춤법은 후에 수정할게요! ## 사전작업 vscode에서 해당하는 폴더를 열어줍니다. '파일 -> 폴더 열기' vscode에서 `ctrl` + `shift` + `~`를 눌러 명령창(터미널)을 열어줍니다. ## python –m venv 가상환경명 ```python –m venv myvenv``` 위의 명령어를 치고 나면 myvenv라는 가상환경 폴더가 생성됩니다. 가상환경명은 아무거나 정할 수 있지만 보통 `myve..

KKU likelion rest project (4)

album과 files를 추가해 주었다면 정상적으로 작동하는지 확인하자 이미지를 올려보면 정상적으로 추가되는 모습을 볼 수 있다. author은 아직 views함수를 추가하지 않아서 괜찮다. files를 올려보자 잘 올라간다. 하지만 files같은 경우에는 새로운 설정이 필요하다 img는 사진의 파일만 올리면 되지만 files는 모든 파일이 들어오기 때문에 이에 따른 설정이 필요하다 mystorage/views.py를 설정하자 from rest_framework import viewsets from .models import Essay, Album, Files from .serializers import EssaySerializer, AlbumSerializer, FilesSerializer from r..

KKU likelion rest project (3)

이 프로젝트의 목적은 사용자들이 직접 미디어 파일을 업로드할 수 있게 하는 것이다. 그러기 위해서는 homework/settings.py에 미디어 파일을 업로드할 수 있게 설정을 해주어야 한다. MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') media url과 root를 설정하여 주었으면 project폴더 아래에 media라는 폴더를 만들어 주면 된다. 또한 media 폴더 아래에는 files 폴더와 images 폴더를 만들어 이곳에 사용자가 올리는 media 파일들이 이미지와 파일을 구분하여 올라가게 해 준다. 그러기 위해서 homework/urls.py를 설정하여 주자. from django.contrib import admin..