Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2012 12:53:51

Remoteroot
От:
Зарегистрирован: 2010-11-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

if/else

Здравствуйте.
Сразу извините за мой “французский” - я новичок в питоне. Нужно решить такую вот задачку.
Есть {{event.release_date|date:“H:i” }} и если его значение равно 00:00, тогда выводить “-”



Офлайн

#2 Янв. 21, 2012 17:01:39

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

if/else

Дак может эту проверку выполнять не в шаблоне? А там, откуда это приходит?



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#3 Янв. 24, 2012 09:39:16

Remoteroot
От:
Зарегистрирован: 2010-11-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

if/else

barabansheg
Дак может эту проверку выполнять не в шаблоне? А там, откуда это приходит?
Вы абсолютно правы. Методом “проб и ошибок”, привел меня именно туда, откуда это приходит. Но всеравно спасибо.



Офлайн

#4 Фев. 22, 2012 11:12:29

Remoteroot
От:
Зарегистрирован: 2010-11-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

if/else

Вот нашел откуда это приходит.
class InstitutionEvent(models.Model):
release_date = models.DateTimeField(blank=False, null=False, verbose_name=_(u'дата проведения события'), default=datetime.datetime.now())
Что дальше?



Офлайн

#5 Фев. 22, 2012 12:20:20

alexzander77
От:
Зарегистрирован: 2009-01-27
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

if/else

{% ifequal event.release_date|date:“H:i” “00:00”%}
-
{% else %}
{{event.release_date|date:“H:i” }}
{% endifequal %}



Офлайн

#6 Фев. 22, 2012 12:25:16

Remoteroot
От:
Зарегистрирован: 2010-11-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

if/else

alexzander77
{% ifequal event.release_date|date:“H:i” “00:00”%}
-
{% else %}
{{event.release_date|date:“H:i” }}
{% endifequal %}
А я в моделях копался.
А если через модели?(просто интересно) Или здесь только так?



Офлайн

#7 Фев. 22, 2012 13:40:27

alexzander77
От:
Зарегистрирован: 2009-01-27
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

if/else

ну можно в модель метод добавить какойнить.

def release_date_as_str(self):
out=self['release_date'].strftime("%H:%M")
if out=="00:00":out="-"
return out
и в шаблоне пользовать его напрямую, без фильтра {{event.release_date_as_str }}
наверное можно, не пробовал ))



Офлайн

#8 Фев. 22, 2012 15:14:46

Remoteroot
От:
Зарегистрирован: 2010-11-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

if/else

В общем получилось так:
class InstitutionEvent(models.Model):
release_date = models.DateTimeField(blank=False, null=False, verbose_name=_(u'дата проведения события'), default=datetime.datetime.now())
def time_value(self):
if self.release_date.format(self.release_date.strftime('%H:%i')) == ‘01:01’:
return u'12345'
else:
return self.release_date

Ничего не поменялось. Пустая строка

Делал проверку, выводил вот так:
def time_value(self):
return self.release_date.format(self.release_date.strftime('%H:%i'))

Но ничего не выводит. Я так понимаю дело в формате времени?



Отредактировано (Фев. 22, 2012 15:58:21)

Офлайн

#9 Фев. 22, 2012 16:38:08

alexzander77
От:
Зарегистрирован: 2009-01-27
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

if/else

оффтоп: в первом варианте у тебя возвращается, в зависимости от, то юникод строка, то датетайм объект.
это не есть гуд.


Remoteroot
Делал проверку, выводил вот так:
def time_value(self):
        return self.release_date.format(self.release_date.strftime('%H:%i'))

Но ничего не выводит. Я так понимаю дело в формате времени?
а %i (і маленькое) точно валидный форматтер? а то я тут пробую:

>>> d=datetime.datetime.now()
>>> d
datetime.datetime(2012, 2, 22, 21, 40, 18, 140000)
>>> d.strftime("%H:%i")
Traceback (most recent call last):
File "<console>", line 1, in <module>
ValueError: Invalid format string
>>> d.strftime("%H:%M")
'21:40'



Офлайн

#10 Фев. 22, 2012 18:22:36

Remoteroot
От:
Зарегистрирован: 2010-11-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

if/else

alexzander77
оффтоп: в первом варианте у тебя возвращается, в зависимости от, то юникод строка, то датетайм объект.
это не есть гуд.


Remoteroot
Делал проверку, выводил вот так:
def time_value(self):
        return self.release_date.format(self.release_date.strftime('%H:%i'))

Но ничего не выводит. Я так понимаю дело в формате времени?
а %i (і маленькое) точно валидный форматтер? а то я тут пробую:

>>> d=datetime.datetime.now()
>>> d
datetime.datetime(2012, 2, 22, 21, 40, 18, 140000)
>>> d.strftime("%H:%i")
Traceback (most recent call last):
File "<console>", line 1, in <module>
ValueError: Invalid format string
>>> d.strftime("%H:%M")
'21:40'
Получилось. Вот как:
def time_value(self):
if self.release_date.strftime('%H:%M') == ‘01:01’:
return u'Неизвестно'
else:
return self.release_date.strftime('%H:%M')



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version