Форум сайта python.su
Доброго времени суток дорогие форумчане.
Я решил создать собственный фильтр для использования в шаблоне.
Давно хотел попробовать, но руки никак не доходили.
Сразу возникли проблемы.
Что я имею:
1. Приложение с моделью и представлением
И собственно фильтр.
На код не обращайте внимания, уверен - написан с ошибками, давно не писал на чистом Python, забыл уже все.
from django.template.defaultfilters import stringfilter from django import template register = template.Library() @register.filter @stringfilter def sell_price(value): if self.sell_price.sell: if self.sell_price.sell.how_m: value.sell_price = self.sell_price.price-self.sell_price.sell.how_m elif self.sell_price.sell.how_p: value.sell_price = self.sell_price.price-((self.sell_price.price/100)*self.sell_price.sell.how_p) else: value.sell=0 return value.sell_price()
Отредактировано xxnikolayxx (Июль 13, 2012 23:19:53)
Офлайн
xxnikolayxxзначит нужно еще читать
Доку читал, читаю и буду читать, но что-то ответы на эти вопросы для себя не нашел
Отредактировано appetito (Июль 14, 2012 11:14:57)
Офлайн
В чем проблема?
from django.utils.html import conditional_escape
from django.utils.safestring import mark_safe
from things.models import Path, Margin, Sell, View, Tissue, Thing
@register.filter(needs_autoescape=True)
def price(id, autoescape=None):
m3 = Thing.objects.get(id=id)
price = m3.price
if m3.sell.name_sell=="product_today":
summa = m3.price+((m3.price/100)*m3.margin.how_mach + m3.margin.how_maney) - ((m3.price/100)*m3.sell.how_mach + m3.sell.how_maney)
else:
how_mach_sell = m3.name.sell.how_mach + m3.path.sell.how_mach + m3.tissue.sell.how_mach + m3.sell.how_mach
how_maney_sell = m3.name.sell.how_maney + m3.path.sell.how_maney + m3.tissue.sell.how_maney + m3.sell.how_maney
how_mach_margin = m3.name.margin.how_mach + m3.path.margin.how_mach + m3.tissue.margin.how_mach + m3.margin.how_mach
how_maney_margin = m3.name.margin.how_maney + m3.path.margin.how_maney + m3.tissue.margin.how_maney + m3.margin.how_maney
summa = (m3.price + ((m3.price/100)*how_mach_margin + how_maney_margin)) - ((m3.price/100)*how_mach_sell + how_maney_sell)
result = '<font color="#990000"><strike>%s</strike></font><br>%s' % ((price), (summa))
return mark_safe(result)
IndentationError at /
expected an indented block (sell.py, line 10)
Офлайн
xxnikolayxxблин чувак тебе интерпретатор пишет, что отступы расставлены неправильно
отступы расставлены правильно
Офлайн
xxnikolayxx
В итоге:
IndentationError at /
expected an indented block (sell.py, line 10)
Файл sell.py перед Вами, отступы расставлены правильно
Офлайн
Не понимаю.
Сегодня запустил машину - как проснулся, ничего не менял, все заработало…
Офлайн
Видимо причудилось…
Спасибо за поддержку.
Отступы были правильные чес слово.
Отредактировано xxnikolayxx (Июль 16, 2012 19:43:16)
Офлайн
А как Вам в целом написан фильтр?
Есть какие-то замечания, ошибки?
Офлайн
xxnikolayxxОстается только поверить в чудеса. А может гномики ночью расставили пробелы по человечески.
Не понимаю.
Сегодня запустил машину - как проснулся, ничего не менял, все заработало…
Офлайн
FishHookЯ погляжу ты юморист.xxnikolayxxОстается только поверить в чудеса. А может гномики ночью расставили пробелы по человечески.
Не понимаю.
Сегодня запустил машину - как проснулся, ничего не менял, все заработало…
Офлайн