使用自定义Django templatetags保持DRY
||
我有一个现有的模板标签
show_next_event
:
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)
我想抽象模板。首先想到的是将ѭ0更改为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)
还是有更好的解决方案?
没有找到相关结果
已邀请:
2 个回复
田眯衅
语句。 因此,这应该工作:
另外,请注意,我已经使用装饰器语法来注册标签。
荆怖赡
编辑: 就像这样: