본문 바로가기

반응형

개발

(40)
[해설과 함께 읽는 Django 문서] 커스텀 SQL 실행하기 https://docs.djangoproject.com/en/3.2/topics/db/models/#executing-custom-sql 한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다. Executing custom SQL 또다른 흔한 패턴은 커스텀 SQL 문을 모델 메소드과 모듈레벨 메쏘드에 에 작성하는 것이다. 더 자세한 raw SQL을 사용하는 방법은 아래 문서를 참고하자. using raw SQL Performing raw SQL queries | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Docu..
[해설과 함께 읽는 Django 문서] 미리 정의된 모델 메소드 재정의 하기 원문 한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다. 미리 정의된 모델 메소드 재정의하기 당신이 커스터마이징 하기 원하는 데이터베이스 행동을 캡슐화하는 또다른 모델 메소드들이 있다 특히 당신은 save() 와 delete() 를 바꾸길 원할 것이다. 당신은 이러한 메소드들(다른 모델메소드와 함께)를 자유롭게 재정의 할 수 있다 내장 메소드를 재정의하기위한 클래식한 방법은 객체를 저장할 대 마다 어떤 일이 발생하기를 원하는 경우이다 예를들면, class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def save(self, *args, **k..
[해설과 함께 읽는 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_..
[해설과 함께 읽는 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, )내 마음대로 해설이 부분은 크게 중요한 내용은..

반응형