본문 바로가기

반응형

django

(25)
[해설과 함께 읽는 DRF 문서] Validation - Raising an exception on invalid data .is_valid() 메소드는 부가적으로 raise_exception 플래그를 사용할 수 있는데, 이것을 사용하는 경우에 유효성 에러가 발생한다면,serilaizers.ValidationError exception을 발생 시킬 것이다 이러한 exception은 REST framework에서 제공되는 기본 exception 핸들러에 의해서 자동으로 관리되고 있고, 기본적으로 HTTP 400 Bad Request 응답을 리턴할 것이다. # Return a 400 response if the data was invalid. serializer.is_valid(raise_exception=True) 설명 serializer.is_valid(raise_exception=True) 를 이용하면, 기본동작으로 is_..
[해설과 함께 읽는 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 - 개요serializers의 유용성을 넓히는 것은 우리가 해결하고자 하는 것입니다. 그러나 간단한 문제가 아닙니다 그리고 이것은 좀 심각한 디자인 작업이 필요합니다— Russell Keith-Magee, Django users groupSerializers는 JSON, XML이나 다른 컨텐트 타입으로 쉽게 렌더링 될 수 있는 파이썬 네이티브 데이터 타입으로 변환될 수 있는 쿼리셋과 모델 인스턴스 같은 복잡한 데이터를 허용한다. Serializers는 들어오는 데이터에 대해서 유효성 검사를 한 이후에 파싱된 데이터를 복잡한 형식으로 다시 변환 하는 것을 허용하면서, 역직렬화 또한 제공한다이 serializers 는 장고의 Form과 ModelForm 클래스들과 매우 비슷하..
[해설과 함께 읽는 Django 문서] Models - 다대다 관계에서의 추가 필드 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.다대다 관계에서 추가적인 필드당신이 many-to-many 관계를 피자와 토핑을 매칭하고 믹싱하는것처럼 다룬다면, 보통의 ManyToManyField 로 충분하다. 그러나 가끔 두개의 모델간에 관계에 대해서 연관된 데이터가 필요할 때가 있다예를들면, 뮤지션이 속한 뮤지컬 그룹을 트래킹 하는 어플리케이션 케이스를 고려해 보자. 사람과 그룹간에 다대다 관계가 있다. 당신은 ManyToManyField 를 관계를 표현하는데 사용할 수 있다. 그러나 해당 사용자가 그룹에 가입 한 날짜와 같이 수집 할 수있는 멤버십에 대한 세부 정보가 많이 있다.이러한 상황들을 위해서, 장고는 다 대 다 관계를 관리하는 데..

반응형