분류 전체보기 363

KKU likelion django project (8)

이번 강의에서는 검색 기능을 만들어 보겠습니다. 검색어를 받기 위하여 home.html에 search form을 만들어 줍시다. 이제 검색어를 받고 필터링한 글목록을 보여줄 search.html을 만들어주어 home.html의 내용을 모두 복사하여 넣어줍니다. postapp/templates/search.html의 내용은 home.html과 동일합니다. 이제 필터링을 해줄 함수와 url을 설정합니다. views.py로 돌아와 def search(request): posts = Post.objects.all() q = request.GET.get('q', '') if q: posts = posts.filter(title__icontains=q) return render(request, 'search.htm..

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..