Форум сайта python.su
День добрый! Хотел поинтересоваться у гуру Django насчёт оптимального решения. Есть одна несложная модель
class AlarmA(models.Model): user = models.ForeignKey(User) caption = models.CharField(max_length=30) alarmdate = models.DateField('Alarm date', blank=True, null=True) # other fields
Офлайн
iceberg
Как я понимаю, при рендеринге нет возможности сравнивать даты с помощью существующих шаблонных фильтров и тегов.
Офлайн
AlenВ шаблоне? Типа сравнить c now? Ну не знаю, что-то никогда не встречал.
Почему? А unixtime.
Офлайн
iceberg
выбрать все и отсортировать вручную в память не влезет?
Напиши оба варианта и сравни.
Офлайн
я бы делал по 1 варианту. потому что вся логика должна быть во вьюхе, а шаблон должен просто рендерить стрницу, без никакой логики.
Офлайн
ilnurЭто красиво в теории, но не работает на практике.
без никакой логики.
product: ForeignKey(Product) year: Integer month: Integer value: Integer
context["month_data"] = TotalSales.objects.filter(year=2014, product__name="Sock").order_by("month")
<table> <tr> {% for val in month_data%} <td>{{ val }}</td> {% endfor %} </tr>
qs = TotalSales.objects.filter(year=2014, product__name="Sock").order_by("month") res = [] for i, t in enumerate(qs): value = t.value if i = 0: previous = 0 else: previous = res[ i - 1 ] increment = (value - previous) if previous else 0 context["month_data"] = {"value": vaue, "increment": increment}
<table> <tr> {% for val in month_data %} {% if forloop.counter > 0 %} <td>{{ val - month_data[forloop.counter - 1] }}</td> {% else %} <td>0</td> {% endif %} <td>{{ val }}</td> {% endfor %} </tr>
ilnurЭто такая вещь в себе, на которую молятся, которой пытаются безусловно следовать, НО ЗАЧЕМ? Вот не станет мой проект лучше, быстрее и расширяемей, если я выпилю всю логику из шаблонов, ни на капельку не станет. Но геморроя, лично мне, прибавит.
без никакой логики.
Отредактировано FishHook (Авг. 15, 2014 10:00:42)
Офлайн
FishHook
полностью с вами согласен. но в данном случаем, я бы сделал так, как я написал.
FishHookтогда давайте сразо на мако писать и шаблоны и вьюхи. :)
Поэтому jinja2 only.
Отредактировано ilnur (Авг. 15, 2014 15:47:15)
Офлайн
То есть у Вас дихотомия мозга: или следуем заветам MVC до усёра, или кодим в шаблоне на питоне.
Ильнур, так нельзя. Разумных людей отличает способность выбирать инструмент для задачи, взвешивая “pro” и “contra”.
Отредактировано FishHook (Авг. 15, 2014 19:51:09)
Офлайн
придерживаемся мвс, где он мешает или не подходит, пишет по своему
Офлайн
ilnurА людей учите почему то иному
где он мешает или не подходит, пишет по своему
а шаблон должен просто рендерить стрницу, без никакой логики.категоричненько так.
Офлайн