Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

418
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda