¿Es posible verificar en la plantilla que algunas URL coinciden con cualquier patrón de las URL?Comprueba si la URL coincide en la plantilla
5
A
Respuesta
6
Esto es algo que normalmente quiere hacer en un archivo con el views.py reverse() auxiliar para URL con nombre con argumentos conocidos o resolve() para rutas.
Si necesita esta funcionalidad en una plantilla en concreto, aquí es una solución hacky:
@register.simple_tag
def urlpath_exists(name):
"""Returns True for successful resolves()'s."""
try:
return bool(resolve(path))
except Resolver404:
return False
Nota: esto no garantiza que la URL es válida, sólo que había una coincidencia de patrón .
0
Supongo que no hay un método simple para hacer esto. Así que escribí un templatetag simple que toma el nombre URL y llamar al método inverso para él y poner en marcha atrás try..except:
try:
result = reverse(url)
except:
result = None
return result
1
Digamos que su nombre de proyecto es ficticio. Luego,
from dummy.urls import urlpatterns
def find_url(url):
for e in urlpatterns:
if e.regex.match(url):
print 'found!' #or do whatever you want
return #then exit the procedure.
print 'not found!'
5
Puede usar la forma "como" de la etiqueta url para verificar si existe una URL con nombre.
{% url path.to.view as the_url %}
{% if the_url %}
<a href="{{ the_url }}">Link to optional stuff</a>
{% endif %}
Cuando se utiliza "as", no se produce una excepción.
Cuestiones relacionadas
- 1. ASP.NET MVC: Agregar la clase CSS seleccionada a ActionLink si url coincide con la url actual
- 2. Comprueba si el argumento de la plantilla se hereda de la clase
- 3. C macro: # si se comprueba la igualdad
- 4. Comprueba si la imagen es JPEG
- 5. Comprueba si la variable comienza con 'http'
- 6. Enlaces canónicos y 301 Redirección si la URL no coincide con la barra
- 7. Rendimiento de OpenCV en la plantilla que coincide con
- 8. url etiqueta de plantilla en la plantilla de Django
- 9. Comprueba si UIWebView está cargado
- 10. Si se comprueba nulo
- 11. ¿Qué pasa si el patrón url coincide con múltiples servlets?
- 12. Comprueba si la enorme lista en python ha cambiado
- 13. Comprueba si la pestaña actual está vacía en vim
- 14. Comprueba si la aplicación iOS está en segundo plano
- 15. Comprueba si la matriz de bytes está en 0xff
- 16. plantilla django si la condición
- 17. ¿Cómo se redirige solo cuando coincide exactamente la url?
- 18. Comprueba si la variable es una fecha válida con PHP
- 19. Actionscript 3: comprueba si la cadena contiene otra cadena
- 20. Comprueba si la ubicación geográfica se ha falseado
- 21. Ruby, comprueba si la cadena tiene caracteres hexadecimales válidos.
- 22. JQuery a ser necesaria si la casilla de verificación comprueba
- 23. Django: Mejor práctica para URL conf, plantilla de plantilla url
- 24. Plantilla de Django, si la etiqueta está basada en el valor de URL actual
- 25. Comprueba si NSURL es el archivo local
- 26. ¿Comprueba si se toca UIView?
- 27. Pasar el nombre de URL variable a la etiqueta url en la plantilla django
- 28. Comprueba si existe una base de datos (MySQL) y si no la creas en PHP
- 29. La regla ANTLR lexer consume caracteres incluso si no coincide?
- 30. Reemplazar caracteres si no coincide