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

288
Visualizações
Tiempo de visualización almacenado en la base de datos en HTML (django)

Estoy construyendo un sitio web de reserva de autobuses usando Django. Los usuarios completan Desde, Hasta, Tipo de autobús (ordinario o Volvo) y fecha. Los resultados muestran los autobuses disponibles en esa ruta en esa fecha en particular. Hice tres tablas: autobús, ruta y frecuencia. Puede consultar mis models.py y views.py aquí: https://dpaste.de/Oi6a Convierto la fecha al día correspondiente de la semana. He filtrado los autobuses. Sin embargo, quiero mostrar el tiempo en la plantilla. Esto es parte de mi código views.py:

 def select(request): bus_type = request.GET.get('bus_type') bus_from = request.GET.get('bus_from') bus_to = request.GET.get('bus_to') date_string = request.GET.get('date') date = datetime.strptime(date_string, '%Y-%m-%d') day = calendar.day_name[date.weekday()] kwargs = { '{0}__range'.format(day): ["00:00:00", "23:59:59"],} qs = Frequency.objects.filter(bus__type_of_bus=bus_type, bus__route__location_from=bus_from, bus__route__location_to=bus_to, **kwargs) context = {'qs': qs, 'date':date_string,} template = 'select.html' return render(request, template, context)

Como puede ver, qs filtra los buses disponibles y luego se pasa a la plantilla. Esta es una parte de la plantilla:

 <div id="pricing-table" class="clear"> {% for info in qs %} <div class="price_block"> <h3>{{ info.bus.type_of_bus }}<span>{% if info.bus.type_of_bus == 'Volvo' %} Rs 550 {% else %}Rs 330 {% endif %}</span></h3> <a href="{% url 'book:seats' %}"rel="follow" rel="noreferrer" class="signup" type="submit">Book</a> <ul> <li><b>Bus Number -</b> {{ info.bus.bus_number }}</li> <li><b>Route -</b> {{ info.bus.route }}</li> <li><b>Date -</b> {{ date }}</li> <li><b>Time -</b> {{ info.day }}</li> </ul> </div>

En la última línea de este archivo HTML, he agregado info.day. Lo que quiero es que esto muestre la hora en que opera el autobús en el día dado. Por ejemplo, si una persona registra un autobús el 29 de abril. El 29 de abril se convertirá en el día correspondiente, es decir, el viernes. La tabla de frecuencia tiene 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado' y 'domingo' como atributos y todos estos son TimeField(). qs filtra los buses y pasa a la plantilla. Quiero que {{ info.day }} muestre la hora en que opera el autobús. En cambio, no muestra nada. Pero cuando cambio {{ info.day }} a {{ info.Friday}}, comienza a mostrar la hora. ¿Cómo puedo mostrar la hora sin tener que ir manualmente y cambiar el día en {{ info.(here) }} cada vez que busco un autobús? No lo dejé muy claro, pero espero que lo entiendas. Avísame si no lo haces.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede crear una etiqueta de plantilla personalizada que haga esto por usted y un método en el modelo.

No he probado este código, pero debería funcionar con o sin pequeños ajustes.

Agregue este método al modelo de Frequency :

 def get_day_info(self, date): # Where date_string would be a datestring date = datetime.strptime(date_string, '%Y-%m-%d') day = calendar.day_name[date.weekday()] info_time = getattr(self, '{}'.format(day)) return info_time

Y registre esto como una etiqueta de plantilla.

 @register.simple_tag def get_day_info(info, date): return info.get_day_info(date)

Lo llamarías en la plantilla así:

 <li><b>Time -</b> {% get_day_info info {{ date }} %}</li>
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