7
votes

Chaîne aléatoire dans le modèle Django

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: xxx

é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 ...

Voici la page de blog: http: //www.b- list.org/weblog/2006/jun/14/django-tips-template-Context-Processeurs/

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)

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.


0 commentaires

6 Réponses :


0
votes

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.


0 commentaires

4
votes

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> xxx


0 commentaires

21
votes

au lieu d'utiliser des blocs if-else , passez une liste de chaînes à votre modèle et à l'aide de aléatoire filtre semble mieux

à votre vue: xxx

et dans votre modèle: xxx

voici le doc .


1 commentaires

Vous pouvez également ajouter ceci à context_processors et l'avoir disponible dans le monde entier. Bon conseil



14
votes

Vous pouvez faire quelque chose comme ça: xxx

regarde la documentation "Tags intégrée et filtres" pour plus d'informations: https://docs.djangoproject.com/fr/1.4/RF/templets / cométine /


2 commentaires

Je suppose que cela n'est limité que par le nombre de lettres d'Unicode, mais que avec est vraiment étrange vraiment rapidement. Cela vaut la peine, alors nous pouvons donc avoir la déclaration {% elif rnd == "💩"%}


En regardant cela me fait manquer Jinja tellement: (merci, monsieur



0
votes

Si vous souhaitez inclure un modèle aléatoire et que vous l'avez disponible dans le monde entier:

dans context_processeurs: p> xxx pré>

in tempale (indiquant que votre inclut est dans "Inc '" Dossier): P>

  {% with banners|random as template %}
    {% include 'inc/'|add:template %}
  {% endwith %}  


0 commentaires

0
votes

Dans un modèle:

@register.assignment_tag()
def random_number(length=6):
    from random import randint
    return randint(10**(length-1), (10**(length)-1))


0 commentaires