payment-tags.pydjango balises de modèle personnalisé: méthode render pas appelé
@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 %}
La méthode render de PaymentObjects classe ne est jamais appelée, il va à l'intérieur de la fonction init mais pas à l'intérieur de rendre ..
J'avais cherché ce problème sur google mais n'ai eu aucune réponse satisfaisante qui peut résoudre le problème.
Un conseil serait grandement apprécié, merci.
Merci pour la réponse, mais dans ce cas, comment dois-je envoyer le paramètre que je dois envoyer ie request.user.id, comme quand je le change pour marquer il donne erreur "has_purchased() prend exactement 1 argument (2 donné) " – Neo
@Neo: Vous devez analyser les arguments vous-même. Les balises ont deux arguments, 'parser' et' token'. [Lire les documents] (https://docs.djangoproject.com/fr/1.3/howto/custom-template-tags/#writing-custom-template-tags). –
Merci beaucoup .. :) – Neo