payment-tags.py
@register.simple_tag
def has_purchased(user_id):
payments = Payment.objects.all(user__id=user_id)
return PaymentObjects(payments)
class PaymentObjects(template.Node):
def __init__(self, payments):
print 'inside init'
self.payments_obj = payments
def render(self, context):
print 'inside render'
context['payments'] = self.payments_obj
return ''
Indside html:
{% load payment-tags %}
{% has_purchased request.user.id %}
PaymentObjects类的render方法永远不会被调用,它进入init函数但不进入render ..
我在谷歌搜索过这个问题,但没有得到任何可以解决问题的满意答案。
非常感谢任何建议,谢谢。
答案 0 :(得分:2)
register.simple_tag
用于立即返回结果的标记函数(Django为您创建节点)。如果要返回自己的节点,请改用register.tag
。