python - extender - Ejemplo de despachador de URL de Django: pase la URL de la vista a otra
plantillas django (1)
Desde la plantilla de "vacaciones disponibles", debe vincular a la página de ubicaciones.
Primero, agrega un argumento de "nombre" a tu definición de url:
(r''^selected/(?P<location>/w+)/$'', ''app.views.selected'', name=''selected_holidays''),
Luego, en las plantillas de "vacaciones disponibles", enlace como tal:
{% url selected_holidays ''Europe'' %}
Por supuesto, use la variable de ubicación si en un forloop:
{% for location in locations %}
<a href="{% url selected_holidays location %}">{{ location }}</a>
{% endfor %}
Si la ubicación es un modelo, entonces debes agregar un método get_absolute_url al modelo, por ejemplo:
from django.core import urlresolvers
class Location(models.Model):
# ... [snip]
def get_absolute_url(self):
return urlresolvers.reverse(''selected_holidays'', args=(self.location_name,))
Luego en la plantilla:
{% for location in locations %}
<a href="{{ location.get_absolute_url }}">{{ location }}</a>
{% endfor %}
En ese caso, cambie el nombre de la url de ''selected_holidays'' a ''location_detail'' si tiene sentido, eso es todo un estándar en Django.
Si quieres ser compatible con versiones anteriores, carga la etiqueta url futura como tal:
{% load url from future %}
Luego, use una cadena de url con comillas:
{% url ''selected_holidays'' ''Europe'' %}
Bueno, creo que tienes algunos principiantes aquí. También deberías sobreescribir el manual de las direcciones de Django para saber dónde está el problema en caso de que te preocupes :) https://docs.djangoproject.com/en/dev/topics/http/urls/
¿Alguien tiene un ejemplo rápido de despachador de url? He revisado la documentación de Django, pero me parece que no hay un ejemplo completo que muestre cómo funciona todo en las vistas.
Específicamente, estoy tratando de pasar la "url" de una vista a otra. Por ejemplo, estoy tratando de crear un sitio web de vacaciones: si se hace clic en un botón de la vista "Días festivos disponibles" llamado "Europa", quiero ir a www.example.com/selected/europe, donde se muestran todos los feriados europeos mientras si se hace clic en un botón de la vista de vacaciones disponibles llamado "Australia", quiero ir a www.example.com/selected/australia donde se muestran vacaciones australianas.
Hasta ahora, en url.py tengo:
(r''^selected/(?P<location>/w+)/$'', ''app.views.selected''),
en views.py tengo:
def selected(request, location)
No estoy seguro de a dónde ir desde allí. Además, ¿cómo van a pasar las cosas de la vista "vacaciones disponibles" a la vista "seleccionada" ...