전체 글(85)
-
[SQLite3] 데이터 베이스 관리 툴 DB Browser for SQLite 설치하기
공식 홈페이지 https://sqlitebrowser.org/ DB Browser for SQLite DB Browser for SQLite The Official home of the DB Browser for SQLite Screenshot What it is DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. DB4S is for users and dev sqlitebrowser.org 다운로드 https://sqlitebrowser.org/dl/ Downloads - DB Browser for SQLi..
2022.03.26 -
[Python Django] __init__() got an unexpected keyword argument 'instance' 에러 발생시 대처법
1. 발단 FormView 중 UpdateView를 사용하던 도중 다음과 같은 에러를 만났다 __init__() got an unexpected keyword argument 'instance' 문제를 만나게 된 계기는 clean_data를 만들기위해 field를 이용하지 않고 form_class를 쓰면 나타나는 문제였다 model = Board fields = ["title", "contents"] # 수정 할 field를 명시한다 template_name = "board_update.html" >> model = Board form_class = BoardUpdateForm template_name = "board_update.html" 2. 상태 당시의 폼은 다음과 같았다 class BoardUpd..
2022.03.26 -
[Python Django] FormView 작성시 fields설정에서 필드 순서가 뒤죽박죽 나올때
UpdateView를 처음 사용할 때 다음과 같이 코드를 작성하였다 class BoardUpdateView(UpdateView): model = Board fields = {'title', 'contents'} template_name = "board_update.html" 이렇게 작성하니 템플릿에서 title 필드가 먼저 출력되기도 하고 contents 필드가 먼저 출력되기도 하였다 그도 그럴것이, set속성을 가진 object는 순서를 가지지 않기 때문에 그때그때 상황에 따라 필드 순서가 뒤죽박죽이었던 것이다 class BoardUpdateView(UpdateView): model = Board fields = ['title', 'contents'] # or # fields = ('title', 'c..
2022.03.26 -
[Python Django] 4. Decorator 이용하기
decorator 생성 # user/decotators.py from django.shortcuts import redirect def login_required(function): def wrap(request, *args, **kwargs): user_id = request.session.get('user_id') if user_id is None or not user_id: return redirect("/user/login/") return function(request, *args, **kwargs) return wrap Function Base View (FBV)에 적용 # user/views.py from user.decotators import login_required @login_req..
2022.03.26 -
[Python Django] 3-8. CBV DeleteView를 이용한 게시판 글 삭제 기능 구현
views.py에 delete class 추가 get을 오버라이드 하지 않는다면 template파일이 필요하며 해당 파일에서 submit 처리가 필요하다 post를 오버라이드 하여 작성자와 로그인을 확인한 뒤 delete를 진행한다, 생략한다면 바로 삭제된다 delete를 실제 delete가 아닌 상태값을 변화시키는 용도로 변경하려면 delete를 오버라이드 한다 class BoardDeleteView(DeleteView): model = Board success_url = '/board/list/' #template_name = "board_delete.html" # template 없이 접근만으로 삭제 # 생략한다면 template에서 submit을 실행해주어야 한다 def get(self, requ..
2022.03.26 -
[Python Django] 3-7. CBV UpdateView를 이용한 글 수정 기능구현
urls.py 추가 from django.urls import path from board.views import BoardCreateView, BoardDetailView, BoardListView, BoardUpdateView urlpatterns = [ path('create/', BoardCreateView.as_view()), path('update//', BoardUpdateView.as_view()), # 추가 path('list/', BoardListView.as_view()), path('detail//', BoardDetailView.as_view()) ] UpdateView UpdateView는 두 가지 방식으로 처리할 수 있는데 filed를 이용한 방식과 form_class를 이용한..
2022.03.26