Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

421
Views
eliminar duplicados en django

Estoy tratando de elegir 3 números aleatorios de una lista de 20 números.

En views.py, he definido esta variable:

 nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

En mi plantilla index.html:

 {{ nums|random }} - {{ nums|random }} - {{ nums|random }}

Quiero obtener 3 números diferentes, pero no sé qué filtro/etiqueta aplicar.

Probé declaraciones if/else, for loops (si hay un duplicado, quiero volver a dibujar), pero no estoy satisfecho con los resultados y estoy bastante seguro de que hay un filtro simple para hacerlo.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

No creo que haya una manera razonable de hacer esto con los filtros incorporados. Simplemente elegiría los números en la vista y los pasaría al contexto.

Si su representación es consistente y desea hacer esto en muchos lugares, puede escribir una etiqueta de plantilla personalizada, por ejemplo:

 import random from django import template register = template.Library() @register.simple_tag def random_sample(population, k): return ' - '.join(str(choice) for choice in random.sample(population, k))

Luego {% random_sample nums 3 %} en su plantilla.

Pero creo que hacerlo en la vista es más simple.

over 4 years ago · Santiago Trujillo Report

0

Puede crear su etiqueta de plantilla con esta funcionalidad para resolver su problema.

yourapp/templatetags/custom_choice_tags.py

 from django import template import random register = template.Library() @register.assignment_tag def get_three_unique_random_values_from_list(value_list): random_choices = random.sample(value_list, 3) selected_choices = { 'first_choice': random_choices[0], 'second_choice': random_choices[1], 'third_choice': random_choices[2], } return selected_choices

y luego en tu template.html:

 {% load custom_choice_tags %} {% get_three_unique_random_values_from_list random_list as random_choices %} {{ random_choices }}

la variable random_list se pasaría de su vista al contexto de la plantilla en este ejemplo.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!