Как реализовать с архитектурной точки зрения отображение стоимости с или без скидки в моделе?

Подскажите, как реализовать правильно с архитектурной точки зрения отображение стоимости товара с или без скидки. Есть модель, в которой сохранено две стоимости. Пользователь может активировать промо код и тогда нам надо выводить на странице стоимость в зависимости от него. Так вот, сейчас я сделал следующим образом. В шаблоне проверяю была ли применена скидка и если да, то отображаю значение со скидкой, если нет - то другое. Но решение мне не нравится. Как-то выглядит ужасно. Может надо сделать метод у модели, в которую передавать параметр была ли скидка или нет, и тогда уже в этом методе возвращать правильное значение? Возможно, есть и другие варианты, о которых я и не подозреваю.
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
  1. Сделать модель промокодов, хранящую сам промокод и размер скидки, который он даёт.
  2. В модели товара реализовать property current_price, возвращающий значение поля price со скидкой, если таковая применяется, или просто значение поля, если не применяется.
  3. В шаблоне просто выводить {{ item.current_price }}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы