我有现成的templatetag,show_next_event
:定制Django的干爽templatetags
def show_next_event():
try:
e = Event.objects.filter(published='1').order_by('date').filter(date__gte=datetime.date.today())[0]
except IndexError:
e = ''
return {'event': e}
register.inclusion_tag('events/next_event.html')(show_next_event)
我想抽象的模板。首先想到的是将show_next_event
更改为next_event
,然后添加两个新功能; show_next_event
和show_next_event_badge
。我希望我能做类似以下的事情,但它不能按原样工作:
def next_event():
try:
e = Event.objects.filter(published='1').order_by('date').filter(date__gte=datetime.date.today())[0]
except IndexError:
e = ''
return {'event': e}
def show_next_event():
next_event
register.inclusion_tag('events/next_event.html')(show_next_event)
def show_next_event_badge():
next_event
register.inclusion_tag('events/next_event_badge.html')(show_next_event_badge)
或者还有更好的解决方案吗?
需要导入哪些模块才能使用装饰器?我喜欢这种方式! – Flowpoke 2011-04-15 20:36:40
您不需要导入任何其他内容。 – 2011-04-15 20:45:13