[Django] models property decorator (@property)

2022. 2. 23. 01:24· Framework/Django

궁금했다.

왜 Django models 에 @property 를 만드는지

Django 에 대해 지식이 얕은게 몸소 느껴지는 순간이다.

왜 models 안에 field 로 만들지 않고 @propery로 빼 놓았을지 몇가지 생각을 해봤었고..

나중에 migrations 하기가 번거로워서 그랬다든지.. field 로 넣기가 힘들었다던지..

정말 다행인건 스스로 심리적으로 여유 생겨서인지 올해부터는 하나하나 깊게 보고있다.

그리고 올해 상반기는 Django 깊게 볼 생각이다.

 

느낌적으로는 아는데 왜? 이러한 부분들을 @property 로 선언해서 사용하는지 설명을 못하는 부분이였다.

많은 글들을 읽어 보았고 ..

 

 

Computed attributes (계산된 속성)

from django.db import models
import locale

class Book(models.Model):
    price = models.IntegerField()
    
    @property
    def price_locale(self):
        locale.setlocale(locale.LC_ALL, '')
        return locale.currency(self.price)
>>> book = Book(price=25000)
>>> book.save()
>>> book.price_locale
'₩25000'

 

이렇게 계산된 속성을 필요로 할 때, 사용하면 된다.

계산된 속성 이라는 단어를 보았을 때 바로 이해 되는 부분이였다.



괜찮은 글을 찾은 것 같아서

https://www.andreadiotallevi.com/blog/how-to-use-the-property-decorator-in-python-and-django

'Framework > Django' 카테고리의 다른 글

[Django] webhook receiver (웹훅 수신)  (0) 2022.06.29
[Django] models cached_property decorator  (0) 2022.02.23
[Django] Ratelimit (django-ratelimit)  (0) 2022.02.17
[Django] auto_now , auto_now_add  (0) 2022.02.11
[Django] You are trying to add the field '필드명' ... (auto_now_add)  (0) 2022.02.11
'Framework/Django' 카테고리의 다른 글
  • [Django] webhook receiver (웹훅 수신)
  • [Django] models cached_property decorator
  • [Django] Ratelimit (django-ratelimit)
  • [Django] auto_now , auto_now_add
임쟌
임쟌
임쟌
Jian's Blog
임쟌
전체
오늘
어제

공지사항

  • [자기소개]
  • 쟌's Blog (227)
    • Language (32)
      • Python (8)
      • Go (24)
      • Java (0)
    • Framework (10)
      • Django (9)
      • Gin (1)
      • Spring boot (0)
      • Fiber (0)
    • Database (10)
      • PostgreSQL (8)
      • MySQL (0)
      • Redis (2)
    • Server (51)
      • Linux (16)
      • Git (12)
      • Oracle Cloud Infrastructure (13)
      • Mac (4)
      • Docker (4)
      • RabbitMQ (0)
      • ETC (2)
    • Operating System (0)
      • OS (0)
    • Algorithm (22)
      • Go (22)
      • Python (0)
    • Exam Certification (4)
    • Daily Life (27)
      • Review (21)
      • Diary (6)
    • 이공계전문기술연수 (71)
      • Java (17)
      • Database (8)
      • HTML | CSS (13)
      • JavaScript | jQuery (6)
      • Servlet | JSP (16)
      • Spring Framework (11)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
임쟌
[Django] models property decorator (@property)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.