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

279
Views
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 answers
Answer question

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