본문 바로가기

반응형

분류 전체보기

(122)
[해설과 함께 읽는 DRF 문서] Validation 데이터를 역직렬화 할 때, 유효성이 보장된 데이터에 접근 하거나, 객체 인스턴스를 저장하기 전에 is_valid() 호출하는 것은 필수이다. serializer = CommentSerializer(data={'email': 'fooboar', 'content': 'baz'}) serializer.is_valid() # False serializer.errors # {'email': ['Enter a valid e-mail address.'], 'created': ['This field is required.']} 각각의 key는 필드 이름이고, 각 values 는 필드에 해당하는 에러메세지에 대한 리스트 이다. non_field_errors key는 일반적인 validation 에러들에 대해서 보여질 수..
[해설과 함께 읽는 Django 문서] Model methods Model methods Date: Apr 3, 2021 원문 한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다. 모델 메소드 당신의 객체에 "row-level"의 기능을 커스텀하여서 추가하기위해서 custome method를 모델에 정의해라. Manager 메소드가 "table-wide" 를 의도하는 것과 다르게, 모델 메소드는 특정 모델 인스턴스에 대한 행동을 해야한다. 이것은 비즈니스 로직을 1군데에서 유지하는 가치있는 기술이다. - 모델에서 예를 들면, 이 모델은 몇개의 커스텀 메소드를 가진다. from django.db import models class Person(models.Model): first_name = models.CharField(..
[해설과 함께 읽는 Django 문서] Models - Meta Options, Model 속성들 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.커스텀 필드 타입들만약 존재하는 모델 필드들이 당신의 목적에 맞지 않거나, 덜 사용되는 데이터베이스 컬럼 타입 이용을 원할 때, 자기만의 필드 클래스를 생성할 수 있다. 자기만의 필드를 만드는 것은 커스텀 모델 필드 작성하기에서 모두 커버 가능하다Meta 옵션들다음과 같이 내부 클래스 Meta를 이용하여서 모델 메타 데이터를 제공한다xfrom django.db import models​​class Ox(models.Model): horn_length = models.IntegerFeild() class meta: ordering = ["horn_length"] verbose_name_plural =..
[해설과 함께 읽는 Django 문서] Models - 필드 이름 제한사항들 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.필드 이름 제한사항들장고는 모델 필드 이름에 몇가지 제한 사항들이 있다.1.필드이름으로 파이썬 예약어가 될 수 없다.파이썬 에러를 발생 시킬 수 있기 때문이다. 예를들면:xxxxxxxxxxclass Example(models.Model): pass = models.IntegerField() # 'pass' is a reserved word!2.필드이름에 underscore('_') 2개 이상 포함할 수 없다. 장고의 쿼리 룩업 문법 동작 때문이다 예를들면:xclass Example(models.Model): foo__bar = models.IntegerField() # 'foo__ba..
[해설과 함께 읽는 Django 문서] Models - 파일 간 모델 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.파일 간 모델또 다른 앱으로 부터, 모델을 연결하는 것은 완벽히 가능하다. 이렇게하려면 모델이 정의 된 파일 상단에서 관련 모델을 가져온다. 그런다음에 필요한 다른 모델 클래스 마다 참조해라 예제:xxxxxxxxxxfrom django.db import modelsfrom geography.models import ZipCode​class Restaurant(models.Model): # ... zip_code = models.ForeignKey( ZipCode, on_delete=models.SET_NULL, blank=True, null=True, )내 마음대로 해설이 부분은 크게 중요한 내용은..
[해설과 함께 읽는 Django 문서] Models - 일대일 관계 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.일대일 관계일대일 관계를 정의하기 위해서는 OneToOneField를 사용한다. 다른 Field 타입과 마찬가지로 모델의 클래스 속성으로 포함하여 사용한다.객체가 어떤 방식으로든 다른 객체를 "확장" 할 때 객체의 기본 키에서 유용하다.OneToOneField 는 positional argument를 요구한다:모델과 관계된 클래스를 말한다예를들어서, "place" 데이터베이스를 만들려고 한다면, 주소, 전화번호 등의 보통의 필드들을 데이터베이스 내에 만들 것이다. 그리고 나서 "place" 상위에 "restaurants" 데이터베이스를 만들길 원한다면, Restaurant 모델에 위의 필드들을 복사..
[DRF] Serializers - 객체 역직렬화 하기 [DRF] Serializers - 객체 역직렬화 하기원문 의 내용 중 해석이 애매한 부분은 그대로 표기하였고, 복잡한 문장은 의역하여서 정리하였습니다역직렬화도 비슷하다. 첫번째로는 stream을 Python native datatype으로 파싱한다.ximport iofrom rest_framework.parsers import JSONParser​stream = io.BytesIO(json)data = JSONParser().parse(stream)그리고 나서 우리는 네이티브 데이터 타입을 복원한다 - 검증된 사전 데이터xserializer = CommentSerializer(data=data)serializer.is_valid()# Trueserializer.validated_data# {'conte..
[DRF] Serializers - 객체 직렬화 하기 [DRF] Serializers - 객체 직렬화 하기원문 의 내용 중 해석이 애매한 부분은 그대로 표기하였고, 복잡한 문장은 의역하여서 정리하였습니다우리는 comment를 직렬화하는데 CommentSerializer를 사용할 수 있다.xxxxxxxxxxserializer = CommentSerializer(comment)serializer.data# {'email': 'leila@example.com', 'content': 'foo bar', 'created': '2016-01-27T15:17:10.375877'}이 부분에서 우리는 모델 인스턴스를 파이썬 네이티브 데이터타입으로 변환해왔다. 직렬화 프로세스를 마치기 위해서 우리는 이 데이터를 json 으로 렌더한다xfrom rest_framework.re..

반응형