본문 바로가기

Django/DRF

(4)
DRF serializer test code - max_length serializer의 max_length도 테스트해야 할 것 같아서 작성했습니다. 기능상 할 이유가 없을 것 같았지만, 협업을 하면서 다른 팀원이 max_length를 변경하는 경우가 있을 것 같아서 넣었습니다. 실제로 테스트를 실행하는 커맨드는 'python manage.py test app name.directory.file'입니다. from django.test import TestCase from ...serializer.user_serializers import UserUpdateSerializer class TestValidUserUpdateSerializer(TestCase): def setUp(self): self.valid_data = {"last_name": "test", "first_..
DRF credentials 메소드 사용법 credentials 메소드는 모든 후속요청에서 사용될 헤더로 세팅해준다. from rest_framework.authtoken.models import Token from rest_framework.test import APIClient # Include an appropriate `Authorization:` header on all requests. token = Token.objects.get(user__username='lauren') client = APIClient() client.credentials(HTTP_AUTHORIZATION='Token' + token.key) credentials 를 사용한 뒤의 모든 리퀘스트에는 credentials 로 설정한 헤더가 계속 유지되는데 이를 해제..
DRF json으로 null이 올 경우, required 옵션 설정을 통해 대처하는 방법 DRF를 사용하는 웹서버에 json으로 null을 보내면 파이썬은 None으로 인식한다. DRF나 django에서 CharField와 TextField는 django convention을 따르면 null=True 와 blank=True 를 동시에 사용하지 말고, blank=True 만 적용하라고 되어있다. 두 개 다 동시에 사용하면 데이터베이스에 empty string(’’ 혹은 “”)과 null 이라는, 타입이 다른 빈 값이 공존하게 되기 때문이다. json에 null이 왔을 때는 위의 옵션으로만 대처가 가능하지만 serializer field로 명시되어 있는 attribute가 json에 포함되어 있지 않을 경우, required 옵션을 사용하면 된다. required 옵션은 명시적으로 지정하지 않으..
DRF token-based vs session based authentication Token-based authentication in Django Rest Framework uses tokens (string) to authenticate clients, while session-based authentication uses sessions (a more complex structure) to authenticate clients. In token-based authentication, the client sends an API request with a token in the header, and the server verifies the token to determine if the client is authenticated. Tokens can be revoked, making..