본문 바로가기

17-09-14 장고에서 다중유저모델 쓰는법 (django multi user model) @마크다운 **서버에서 유저모델이 두개가 있으면 좋겠다** 라고 생각해서 AbstractBaseUser로 두개의 유저모델을 만들어 따로 관리해야지 하고나 자신의 발전에 뿌듯함을 느끼고 신나게 코딩을 했다. 다 작성하고 런 시키는순간 에러가 일어나면서 django가 경기를 일으키기 시작했다.. 당황스러웠지만 하나씩 수정해가면서 노동으로 원인을 찾았더니 현재의 서버에는 AUTH_USER_MODEL로 모델을 지정해 주고 있는데 지정된 모델과 사용하고 있는 유저모델이 달라서 에러가 나는것이었다. 어떻게하면 AUTH_USER_MODEL을 나눠서 쓸 수 있을까 스택오버플로우에 한참 찾았더니 검색어```django multi user model``` [검색결과](https://stackoverflow.com/ques.. 더보기
docker안에서 인코딩타입, 시간 설정 바꾸기 @마크다운 예약 시스템을 만들던 도중 로컬에서 되던 포스트맨이 서버에서 동작하지 않는 경우가 발생했다. ascii 어쩌고 하면서 에러가 떴는데 인코딩관련 에러 라고 한다. 그래서 이게 왜 안되나... 로컬에서 다 확인하고 올린건데... 문제는 사용하고 있는 docker였다. docker에서 인코딩 설정을 UTF-8로 바꾸니 그제서야 동작하기 시작.. 그리고 이 문제를 해결하고 나니 이번엔 UTC가 맞지 않는 문제가 발생 예약에서 시간단위로 예약을 받기 때문에 이번엔 문제가 뭘까 생각했는데 django안에서는 settings에서 시간설정을 맞춰서 아무런 문제가 없는데 서버에만 올라가면 시간이 뻑이나는것을 발견 이번에도 docker가 문제구나! docker에서 시간설정을 한국으로 맞추고 실행했더니 시간도 잘.. 더보기
django 예약기능 @마크다운 def validate(self, data, **kwargs): start_lesson_date = data['start_lesson_date'] end_lesson_date = data['end_lesson_date'] tutor = get_object_or_404(Tutor, pk=data['tutor'].pk) customer = get_object_or_404(SnowPeopleUser, pk=data['customer'].pk) print(tutor, customer) schedule_of_lesson = (end_lesson_date + timedelta(hours=1)) - start_lesson_date reservated_list = [start_lesson_date + tim.. 더보기
django generic view 사용시 method마다 다른 serializer사용하고 싶을 때 @마크다운 정말 간단한건데 1시간 동안 삽질했다.억울해서 적어둠 제네릭 뷰를 까보면 함수에 `get_serializer_class` 가 있다. 설명을 읽어보면 요청에 따라 다른 시리얼라이저를 사용할 때 쓸 수 있다고 적혀있다. 이 함수를 쓰지 않는다면 기본값으로 serializer_class로 지정된 값을 사용한다고 되어있다. 제네릭뷰를 쓰고 있으니 함수를 오버라이드해서 사용하면 된다 ```def get_serializer_class(self): if self.request.method == "처리할 요청" return 사용할 시리얼라이저 return 다른 요청들이 사용할 시리얼 라이저 ``` 정말 간단하다. 더보기
자주 쓰일것 같은 정규표현식 (휴대폰 번호 정규식 , 일반전화 정규식 등등) @마크다운 휴대폰번호 정규식이나 이메일 체크 정규식 같은것들 모음 정규식사용은 프레임워크별로 크게 다르지 않으니 적절하게 바꿔쓰면 됩니다. python ,django 기준 # 공백체크 ```(r'\s/g')``` # 숫자체크 ``` (r'^[0-9]+$')``` # 아이디, 비밀번호 정규식 ```(r'^[a-z0-9_]{4,20}$')``` # 휴대폰번호 정규식 ```(r'^\d{3}-\d{3,4}-\d{4}$')``` # 휴대폰번호 체크 정규식 ```(r'^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$')``` # 일반전화 정규식 ```(r'^\d{2,3}-\d{3,4}-\d{4}$')``` # 이메일 체크 정규식 ```(r'^[0-9a-zA-Z]([-_\.]?[0-.. 더보기