Bonjour, j'ai besoin d'actualiser ma balise de modèle personnalisée --Right_side.py-- via Ajax. Existe-t-il un moyen d'importer la balise de modèle dans la vue et de le renvoyer comme httpresponse car je ne veux pas abandonner ma balise de modèle personnalisée (cela fonctionne bien dans d'autres pages) ni de code une nouvelle action de vue qui est vraiment similaire à celle-ci . p>
avoir un lien pour appeler avec Ajax ou le charger dans la vue à l'intérieur p>
Si demande.isajax (): p>
conviennent parfaitement pour moi. p>
4 Réponses :
Vous pouvez créer un modèle contenant votre templeTag et rien d'autre. Ensuite, vous auriez dans le droit_side.html: et dans la vue quelque chose comme: p>
Oui, mais si vous devez travailler supplémentaire pour préparer les variables nécessaires par le modèle, vous devez dupliquer le code dans les deux endroits.
Je trouve cela vraiment utile lorsque vous rafraîchissez une zone avec Ajax. Alors pensé qu'il serait bon de le partager:
Tout d'abord, vous importez la balise de modèle personnalisée que vous avez codée dans votre fichier d'affichage. p> et ensuite vous l'utilisez comme ceci: p> return HttpResponse(your_tag_name.your_method(context))
J'ai eu cette même question il y a quelque temps, je chargais des extraits HTML avec Ajax que j'avais déjà écrit en tant que tags de modèle. Et j'essayais d'éviter de faire dupliquer le code à deux endroits.
C'est ce que j'ai proposé pour rendre une étiquette de modèle à partir d'une vue (appelée via Ajax): p>
from django.template import RequestContext, Template def myview(req): context = RequestContext({'somearg':"FooBarBaz"}) template_string = """ {% load my_tag from tagsandfilters %} {% my_tag somearg %} """ t = Template(template_string) return HttpResponse(t.render(context))
Cela n'invoque pas vraiment le middleware correctement. Appels vers {% CSRF%} code> dans le modèle associé à mon templatetag venir vide. Stackoverflow.com/Questtions/13241278/... Avez-vous des idées?
Besoin de faire le contexte une demandeContext. context = demandeContext (demande, {....}) code>
Je voulais utiliser la balise de modèle dans une fonction UTILS et que le requileContext a continué à provoquer une erreur en raison de l'attente d'un objet de demande. Un clair contexte code> a fait le tour pour moi.
J'ai trouvé cette solution:
@register.inclusion_tag('path/to/template.html') def my_templatetag(parameter): #my operations return locals()