궁금했다.
왜 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 |