Создание метода модели Django

категория: Django
Часто приходиться изменять значения, выводимые из базы в шаблон. Есть у нас для этого шаблонные фильтры, и можно написать свой фильтр, но если нам он больше нигде не пригодиться - можно создать метод модели. Или нужно добавить функционал к модели, ну и есть еще куча разных причин, почему нам это все нужно :) Метод модели django - это просто функция класса, написанного на python. Теперь перейдем к примеру. Есть поле модели для цены:
price = models.IntegerField(u"цена")
Цена будет не больше 6 символов и нужно просто вставить пробел после тысяч для удобочитаемости. Пишем метод внутри этой модели:
def get_price(self):
    import re
    """
    Converts an int to a string containing ' ' after first three digits.
    For example, 3000 becomes '3 000' and 45000 becomes '45 000'.
    """
    orig = str(self.price)
    new_price = re.sub("^(-?\d+)(\d{3})", "\g<1>%s\g<2>" % " ", orig)
    return new_price
Просто вставляем в шаблон так:
{{ object.get_price }}
вместо:
{{ object.price }}
Я думаю простой пример для создания метода модели django.


blog comments powered by Disqus