분류 전체보기(85)
-
[Python Django] 3-6. CBV ListView - Pagination 응용 get_elided_page_range()
기본 pagination을 사용하면 전체 페이지, 현재 페이지, 이전 페이지, 다음 페이지로 이루어진 UI만 제작이 가능하나, get_elided_page_range를 이용하면 현재 페이지를 중심으로 앞 뒤 페이지의 넘버링을 보여주는 UI제작이 가능하다 get_elided_page_range(page_num, on_each_side={int}, on_ends={int}) page_num 현재 페이지 on_each_side 현재 페이지 양 옆으로 나올 다른 페이지의 개수 총 100페이지이고 현재 10페이지, on_each_side값이 3이라면 7,8,9,[10],11,12,13 출력 총 100페이지이고 현재 1페이지 , on_each_side값이 3이라면 [1], 2, 3, 4 출력 on_ends 페이지 ..
2022.03.26 -
[Python Django] 3-5. CBV ListView에 Pagination 적용
view.py 수정 # board/templates/board_list.html class BoardListView(ListView): model = Board template_name = "board_list.html" context_object_name = "board_list" ordering = "-id" paginate_by = 5 # 옵션추가: 한 페이지당 5개의 게시물 paginate_orphans = 1 # 옵션추가: 마지막 페이지가 1개일 경우 직전 페이지에 연결 page_kwarg = "p" # 옵션추가: 파라미터값을 page > p 변경 board_list.html 수정 이전 페이지 / 현재 페이지 번호 / 총 페이지 개수 / 다음 페이지로 구성된 Pagination이 생성됩니다 # ..
2022.03.26 -
[Python Django] 3-4. CBV ListView를 이용한 List 구현
views.py 수정 BoardListView 클래스 추가 # board/views.py class BoardListView(ListView): template_name = "board_list.html" model = Board context_object_name = "board_list" ordering = "-id" urls.py 수정 # board/views.py from django.urls import path from board.views import BoardCreateView, BoardDetailView, BoardListView urlpatterns = [ path('create/', BoardCreateView.as_view()), path('list/', BoardListView...
2022.03.26 -
[Python Django] 3-3. CBV FromView ForeignKey 연결
게시판을 작성하면서 작성자 정보를 저장하지 않았었는데, 이 부분 수정하면서 다른 테이블과의 연결에대해 알아봅니다. model.py 수정 insert_user를 ForeignKey로 지정 on_delete=models.CASCADE 설정은 외래 키로 지정된 데이터가 삭제되었을 때 대한 데이터 역시 삭제해준다는 설정이다 # board/models.py from django.db import models class Board(models.Model): title = models.CharField(max_length=256, verbose_name="제목") contents = models.TextField(verbose_name="내용") insert_user = models.ForeignKey('user.U..
2022.03.26 -
[Python Django] 3-2. CBV DetailView를 이용한 상세페이지 구현
views.py 수정 BoardDetailView 클래스를 생성하여 DetailView를 상속받아 상세 페이지를 구성 # board/views.py class BoardDetailView(DetailView): template_name = "board_detail.html" model = Board # URLConf에서 pk 파라미터의 값을 활용하여 자동으로DB를 조회한다 urls.py 수정 # board/views.py from django.urls import path from board.views import BoardCreateView, BoardDetailView urlpatterns = [ path('create/', BoardCreateView.as_view()), path('detail//..
2022.03.26 -
[Python Django] 3-1. CBV FormView를 이용한 Create 구현
FormView를 이용하여 게시판 글 작성 페이지를 만들어보겠습니다. forms 생성 # board/forms.py from django import forms class BoardCreateForm(forms.Form): title = forms.CharField( max_length=256, label="제목", error_messages={'required': '제목을 입력해주세요'} ) contents = forms.CharField( widget=forms.Textarea, label="내용", error_messages={'required': '내용을 입력해주세요'} ) views 수정 저장 후 다시 저장 페이지를 보여줍니다. # board/views.py from django.views.ge..
2022.03.26