django, drf 5

timezone설정이 일부 datetime_field에만 적용되는 이슈 해결방법

우선 db는 post모델과 advertisement모델을 1:1로 연결해서 글을 생성하는 구조로 되어있다. 그리고 각 모델의 코드는 아래와 같다. - post/models/post.py class Post(models.Model): """Model definition for Post.""" class Meta: db_table = 'posts' verbose_name = 'Post' verbose_name_plural = 'Posts' POST_TYPE = ( ('R', 'review'), ('C', 'clubpost'), ('A', 'advertisement'), ) title = models.CharField( max_length=20, null=False, verbose_name='제목' ) con..

django, drf 2022.11.17

drf dj_rest_auth 로그인 커스텀, non_field_error 해결방법

요즘 학교에서 알파프로젝트로 우리 학교 학생들을 위한 정보공유서비스를 만드는 중이다. 거기서 유저관련 기능을 구현하면서 알게된 dj_rest_auth로 로그인방식을 편하게 커스텀하는 방법을 공유하려고한다. 먼저 처음 로그인 오류를 만나게 된건 회원단계에서 이메일 인증을 하도록 구현하면서 시작됐다. 회원가입 이메일 인증 코드들을 살펴보면서 설정을 추가하다가 다음 설정을 추가하게 된다. ACCOUNT_AUTHENTICATION_METHOD = 'email' 이메일 인증을 위한 설정이라고 했고... 이름도 account authentication method... 당연히 이메일 인증을 하기위한 dj_rest_auth 기본 설정이라고 생각했다. 그리고 여기서 모든 문제가 시작됐다. ㅠㅠ 회원가입만 커스텀했을 뿐..

django, drf 2022.11.17

dj-rest-auth/allauth를 이용한 회원가입기능 구현

이번 프로젝트에서는 drf와 react를 사용하고, 로그인 회원가입 기능도 dj-rest-auth와 alllauth를 사용해서 구현한다. drf를 처음 사용해봐서 지금 당장은 어려움이 있지만 또 하다보면 익숙해진다고 생각하고 열심히 해봐야겠다! 우선 models.py부터 보자! 여기선 다양한 필드를 받아야 하기 때문에 AbstractUser를 상속해서 유저를 확장해줬다. from django.contrib.auth.models import AbstractUser class User(AbstractUser): username = None email = models.EmailField(max_length=255, unique=True) USERNAME_FIELD = 'email' REQUIRED_FIELDS..

django, drf 2022.08.04

사용한 라이브러리 관리

장고로 개발하는 중간중간에 설치해서 사용한 라이브러리를 텍스트파일로 편리하게 관리할 수 있다. 우선 장고앱아래에 requirements.txt 파일을 생성하고 그 아래에 장고 버전과 라이브러리명을 적는다. django~=3.0.0 #버전을 타는 경우에는 버전도 기재. 그렇지 않으면 굳이 안써도 됨! pillow 그리고 해당앱을 실행하기 위해 사용된 패키지를 설치할 필요가 있을 경우, 다음 명령어를 통해서 일괄설치가 가능하다. pip install -r requirements.txt

django, drf 2022.07.28

내가 보려고 쓰는 장고 설치+초기설정

멋사에서 장고를 배우는중인데, venv로 장고설치하는 부분이랑 초기설정에서 문제가 정말 너무 많이 터져서 힘들었다ㅠ 내 컴퓨터에 뭔가 있으면 안되는 암적인 존재가 설치되어있는게 분명하다... 아무튼 담에 새 프로젝트만들면 거기서 또 초기설정을 해줘야하니까 미래의 내가보라고 장고 설치법을 정리해본다..ㅠ 일단 원하는 프로그램 파일을 git Bash로 열어준다 1. python -m venv myvenv myvenv라는 이름의 가상환경을 만들겠다는 뜻 2. source myvenv/Scripts/activate 가상환경을 실행시키는 명령어이다. 정상실행되면 밑에 (myvenv)라고 뜬다. 3. pip install django 장고를 설치하는 명령어이다. 4. django-admin startproject ..

django, drf 2022.04.04