본문 바로가기

반응형

개발

(40)
[해설과 함께 읽는 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..
[DRF] Serializers - Serializers 클래스 선언하기 [DRF] Serializers - Serializers 선언하기원문 의 내용 중 해석이 애매한 부분은 그대로 표기하였고, 복잡한 문장은 의역하여서 정리하였습니다간단한 객체를 생성해보자.xfrom datetime import datetime​class Comment: def __init__(self, email, content, created=None): self.email = email self.content = content self.created = created or datetime.now()​comment = Comment(email='leila@example.com', content='foo bar')우리는 아래에 serializer를 선언할 것인데, 직렬화, 역직렬화 할 수있고 이 데이터는 ..
[DRF] Serializers - 개요 [DRF] Serializers - 개요serializers의 유용성을 넓히는 것은 우리가 해결하고자 하는 것입니다. 그러나 간단한 문제가 아닙니다 그리고 이것은 좀 심각한 디자인 작업이 필요합니다— Russell Keith-Magee, Django users groupSerializers는 JSON, XML이나 다른 컨텐트 타입으로 쉽게 렌더링 될 수 있는 파이썬 네이티브 데이터 타입으로 변환될 수 있는 쿼리셋과 모델 인스턴스 같은 복잡한 데이터를 허용한다. Serializers는 들어오는 데이터에 대해서 유효성 검사를 한 이후에 파싱된 데이터를 복잡한 형식으로 다시 변환 하는 것을 허용하면서, 역직렬화 또한 제공한다이 serializers 는 장고의 Form과 ModelForm 클래스들과 매우 비슷하..
[해설과 함께 읽는 Django 문서] Models - 다대다 관계에서의 추가 필드 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.다대다 관계에서 추가적인 필드당신이 many-to-many 관계를 피자와 토핑을 매칭하고 믹싱하는것처럼 다룬다면, 보통의 ManyToManyField 로 충분하다. 그러나 가끔 두개의 모델간에 관계에 대해서 연관된 데이터가 필요할 때가 있다예를들면, 뮤지션이 속한 뮤지컬 그룹을 트래킹 하는 어플리케이션 케이스를 고려해 보자. 사람과 그룹간에 다대다 관계가 있다. 당신은 ManyToManyField 를 관계를 표현하는데 사용할 수 있다. 그러나 해당 사용자가 그룹에 가입 한 날짜와 같이 수집 할 수있는 멤버십에 대한 세부 정보가 많이 있다.이러한 상황들을 위해서, 장고는 다 대 다 관계를 관리하는 데..
[Django] 다대다 관계에서 through, through_fields, through_defaults through와 through_fields와 through_default에 대한 정리1. through다대다 관계를 나타낼 때, custom 한 중개모델을 지정할 때 사용한다.xxxxxxxxxxfrom django.db import models​​class Person(models.Model): name = models.CharField(max_length=128)​ def __str__(self): return self.name​ class Meta: db_table = "person"​​class Group(models.Model): name = models.CharField(max_length=128) members = models.ManyToManyField( Person, through="Mem..
[Django] 다대다 관계의 모델을 직접 활용해 보자 다대다 관계의 모델을 직접 활용해보자1. 다대다 관계에서 모델 인스턴스 생성하기1.객체 생성 후 save() 하기xxxxxxxxxxIn [4]: person = Person.objects.create(name='권태형')INSERT INTO "person" ("name")VALUES ('권태형')​Execution time: 0.002013s [Database: default]​In [5]: python_group = Group.objects.create(name='파이썬모임')INSERT INTO "group" ("name")VALUES ('파이썬모임')​Execution time: 0.002968s [Database: default]​In [6]: vegeterian_group = Group.obje..

반응형