Y a-t-il un moyen d'avoir une chaîne aléatoire dans un modèle Django?
J'aimerais avoir plusieurs chaînes affichant de manière aléatoire comme: p> éditer:
Merci de réponse mais mon cas avait besoin de quelque chose de plus spécifique que dans le modèle de base (ce que j'ai oublié de mentionner désolé). Donc, après avoir rampé Google et une DOC, je tombe sur le processeur de contexte Article qui a fait le travail, je l'ai trouvé un peu "élévateur" de toute façon pour générer un nombre aléatoire ... p> Voici la page de blog: http: //www.b- list.org/weblog/2006/jun/14/django-tips-template-Context-Processeurs/ P> Tag N'A PAS l'astuce (ou je n'avais pas trouvé comment) à son retour une balise qui ne peut pas être traduite comme je me souviens (voir BlockTrans Doc) p> Je n'ai pas trouvé de moyen de générer un numéro pour la vue de base (y est-il?) Et s'il y a un moyen meilleur que le contexte processus je serais heureux d'avoir des infos. p> p>
6 Réponses :
Vous devez écrire une balise de modèle personnalisée, voir celui-ci (avec Fermer Fonctionnalité) comme exemple: http: / /djangosnippets.org/snippets/150/ , mais si ce n'est pas critique, de la matrice de lignes dans le modèle, je préférerais générer cette chaîne aléatoire en vue. P>
Je suppose que vous voulez avoir une balise qui génère des cordes aléatoires de certaines chaînes contenant des cordes. Voir cet extrait Django:
http://djangosnippets.org/snippets/286/ : < / p>
au lieu d'utiliser des blocs à votre vue: P> et dans votre modèle: p> voici le doc . p> p> if-else code>, passez une liste de chaînes à votre modèle et à l'aide de
aléatoire code> filtre semble mieux
Vous pouvez également ajouter ceci à context_processors et l'avoir disponible dans le monde entier. Bon conseil
Vous pouvez faire quelque chose comme ça: regarde la documentation "Tags intégrée et filtres" pour plus d'informations:
https://docs.djangoproject.com/fr/1.4/RF/templets / cométine / p> p>
Je suppose que cela n'est limité que par le nombre de lettres d'Unicode, mais que avec code> est vraiment étrange vraiment rapidement. Cela vaut la peine, alors nous pouvons donc avoir la déclaration
{% elif rnd == "💩"%} code>
En regardant cela me fait manquer Jinja tellement: (merci, monsieur
Si vous souhaitez inclure un modèle aléatoire et que vous l'avez disponible dans le monde entier:
dans context_processeurs: p> in tempale (indiquant que votre inclut est dans "Inc '" Dossier): P> {% with banners|random as template %}
{% include 'inc/'|add:template %}
{% endwith %}
Dans un modèle:
@register.assignment_tag() def random_number(length=6): from random import randint return randint(10**(length-1), (10**(length)-1))