목록Python (7)
개발 기록
DRF - ViewSet으로 API를 구성중에 있다 class SoftDeleteModel(models.Model): is_deleted = models.BooleanField(default=False) def delete(self): self.is_deleted = True self.save() def restore(self): self.is_deleted = False self.save() class Meta: abstract = True 처음에는 def soft_delete(self): 로 했는데 delete method 보내면 바로 삭제가 되어 적용이 안되었다 ( 내 경우 ) SoftDeleteModel을 생성한 다음 softdelete를 적용할 모델에게 넣어준다 여기 클래스에는 is_delete..
simple-jwt에 블랙리스트라는 기능이 있어서 사용해보려고 한다 사용 이유 - 로그 아웃시 로컬 저장소에 저장한 토큰을 삭제하고 서버에서 블랙리스트에 넣어 무효화 - localStorage에서 액세스 토큰과 새로 고침 토큰을 모두 제거할 수 있더라도 refresh_token이 도난당했다면 다른 클라이언트가 해당 토큰을 무기한 계속 사용할 수 있다. 이를 방지하기 위해 클라이언트가 현재 refresh_token 또는 현재 사용자에게 할당된 모든 refresh_token을 무효화 가능 공식문서 https://django-rest-framework-simplejwt.readthedocs.io/en/latest/blacklist_app.html Blacklist app — Simple JWT 5.1.0.po..
1. 회원가입 accounts/models.py - 가입시 이메일과 비밀번호만 입력 from django.contrib.auth.base_user import AbstractBaseUser from django.contrib.auth.models import PermissionsMixin from django.db import models from accounts.managers import UserManager class User(AbstractBaseUser,PermissionsMixin): email = models.EmailField(verbose_name='email id', db_index=True, null=False, blank=False, unique=True, help_text='EMA..
1. 'User' object has no attribute 'has_module_perms' admin 계정을 만들고 로그인 했더니 뜬 에러 검색해보니 커스텀 유저를 사용해서 그런 것 같다 PermissionsMixin를 추가해줌 문서를 참고- PermissionsMixin는 사용자 모델의 클래스 계층에 포함할 수 있는 추상 모델로, Django의 권한 모델을 지원하는 데 필요한 모든 메서드와 데이터베이스 필드를 제공한다고 한다 class User(AbstractBaseUser,PermissionsMixin): id = models.AutoField(primary_key=True) https://docs.djangoproject.com/en/4.0/topics/auth/customizing/#custo..
from django.contrib.auth.models import AbstractUser class User(AbstractUser): pass AbstractUser 로 커스텀해서 사용중이였다 이거말고 다른 곳에서 유저 사용하는게 없는데 오류가 나서 이상했다 뒤져보니 restframework 사용하려고 예문 붙여넣은 urls.py에서 user를 잘 못 임포트해오고 있었다. from django.urls import path, include from django.contrib.auth.models import User from rest_framework import routers, serializers, viewsets # Serializers define the API representation. ..
출처 https://django-taggit.readthedocs.io/en/latest/getting_started.html Getting Started — django-taggit 1.3.0 documentation Add "taggit" to your project’s INSTALLED_APPS setting. Run ./manage.py migrate. Note If you want django-taggit to be CASE-INSENSITIVE when looking up existing tags, you’ll have to set TAGGIT_CASE_INSENSITIVE (in settings.py or wherever you have your Dj django-taggit.readthed..
MVC & MTV Model View Control, Template(Django) Django 동작 과정 Browser -> WEB SERVER -> WSGI(wsgi.py) ->URL.RESOLUTION(urls.py) -> VIEW(view.py) -> TEMPLATE(ex.html) -> WSGI -> WEB SERVER MODEL(models.py) MANAGERS DB FORM(forms.py) 프로젝트와 앱 -프로젝트 내부에 다수의 app 생성 settings.py - 프로젝트 환경 설정 파일 DEBUG : 디버그 모두 설정 INSTALLED_APPS : pip로 설치한 앱 또는 본인이 만든 app 추가 MIDDELWARE_CLASSES : request와 response 사이의 주요 기능 ..