Server

    [Django] Rest Framework / ViewSet QuerySet Params

    예를 들어 https://xxxxxxxxx.xxx/match/list/?user=3 과 같이, ? 를 통한 query 질의를 받아들여 queryset을 구성하려면 아래와 같이 구성하면 된다. class MatchView(viewsets.ModelViewSet): queryset = Match.objects.all() serializer_class = MatchSerializer permission_classes = [ permissions.IsAuthenticated ] def get_queryset(self): queryset = self.queryset search = self.request.query_params.get('user', None) if search: queryset = queryset..

    [django] User Profile Response 요청하기

    in serializers.py from .models import Profile class ProfileSerializer(serializers.ModelSerializer): class Meta: model = Profile fields = '__all__' in views from .serializers import ProfileSerializer class ProfileAPI(viewsets.ViewSet): def retrieve(self, request, pk=None): user = get_object_or_404(User, pk=pk) profile_serializer = ProfileSerializer(user.profile) return Response(profile_serializer..

    [django/문제해결] You are trying to add a non-nullable field

    django makemigrations 중 가끔 위와 같은 에러 상황이 발생한다. 쉽게 말해 기존의 models가 변경된 models로 인해 갈 곳을 잃어버렸다는 것이다. 1) 이는 makemigrations 폴더 내의 기록을 지워도 되는 상황이라면, __init__.py 파일을 제외하고 전부 지우면 해결된다. 2) 그럴 수 없는 상황이라면, default = '' 옵션, 혹은 null = True 옵션을 주게 되면 해결된다

    [django] MongoDB, Line이 사용하는 이유

    http://www.bloter.net/archives/355753 라인은 왜 몽고DB를 도입했을까 이민규 라인 IT서비스 관리팀 DB 엔지니어를 만나다 www.bloter.net 요약 장점 1) 대량의 데이터를 입력 할 때 속도가 빠르다 2) 문서 지향 DB로써, 스키마를 자주 변경해야하는 상황에 딱 알맞다. 3) 데이터 분석, 고객에게 맞는 데이터를 추출하여 다시 몽고DB 저장소에 담고, 다시 사용자에게 보여주는 등 스키마가 자주 변경되어야하는 상황. 벌크 데이터를 입력하고 추출하는 상황에 성능이 좋고, 세컨더리 인덱스를 지원하는 부분 4) 압축 알고리즘을 통해 데이터 사이즈를 줄여서 스토리지 비용을 낮추는 점 5) 물론 자사 서비스에 맞는 DB를 고려하는 게 우선이며, 여러 개의 DBMS를 사용하는..

    [Django/문제해결] Type Error : modelName() got an unexpected keyword argument 'many'

    해결책 ModelViewSet 부분의 serializer_class 부분에 다른 값을 넣어두었는지 확인하고 아니라면 해당 모델의 serializer을 넣는다

    [Django/문제해결] relation 'class_name' does not exist

    models.py에 model 생성 후 makemigrations 까지 마쳤는데, migrate 때 이러한 에러가 날 경우, 해당 model의 migrations 내의 0001_initial.py 파일이 최신화 되어있는지 확인해보자. 보통 실수 또는 동기화 문제로 인하여 최신화 되어 있지 않아, makemigrations까지 했는데도 충돌이 나서 최신화되지 않거나 하는 이유로 문제가 발생한다. 이를 삭제해준 뒤 다시 $ python ./manage.py makemigrations 해주면 해당 파일이 생성되고, 다시 $ python ./manage.py migrate 해주면 잘 될 것이다

    [Django] RestFrameWork 설치

    $ ./venv/bin/pip3.7 install djangorestframework $ ./venv/bin/pip3.7 install serializers Hot Ez Ex) serializers는 데이터를 JSON, XML과 같은 native 데이터로 바꿔주는 역할을 함 이후 settings.py 수정, rest_framework를 추가해주고 in settings.py INSTALLED_APPS = [ ... 'rest_framework', ... ] 아래의 설정을 넣어준다 in settings.py # REST FRAME WORK REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ # 'rest_framework.permissions.IsAdminUser', ..

    [Django] server start 방법 (daemon 포함)

    django 서버 실행 방법. 일반적인 방법 $ python manage.py runserver {PORT} 위 방식은 putty 등 해당 터미널 종료 시 프로세스도 함께 종료되기 때문에 휘발성이라고 볼 수 있다. daemon 형태로 돌릴려면, $ nohup python ./manage.py runserver 0.0.0.0:8000 & Hot Ez Ex) nohup : 유닉스, 리눅스에서 데몬 형태로 파일을 실행시키는 프로그램, 터미널 세션이 끊겨도 실행을 멈추지 않고 동작함. 또한 이로 인해 생성되는 nohup 파일에, 실행한 파일의 출력이 찍힌다. & : 프로세스를 실행할 때 백그라운드에서 실행한다. 보통 & 로만 으로도 daemon 형태로 실행된다는 말이 있는데, 최근에는 그런 것 같고. 일반적으로..