Saltar al contenido

¿Cómo puedo obtener la URL completa / absoluta (con dominio) en Django?

Solución:

Use el práctico método request.build_absolute_uri () a pedido, páselo la URL relativa y le dará una completa.

De forma predeterminada, la URL absoluta para request.get_full_path() se devuelve, pero puede pasarle una URL relativa como primer argumento para convertirlo en una URL absoluta.

Si quieres usarlo con reverse() Puedes hacerlo : request.build_absolute_uri(reverse('view_name', args=(obj.pk, )))

Si no puede acceder a request entonces no puedes usar get_current_site(request) como se recomienda en algunas soluciones aquí. Puede utilizar una combinación del marco nativo de sitios y get_absolute_url en lugar de. Configure al menos un sitio en el administrador, asegúrese de que su modelo tenga un método get_absolute_url (), luego:

>>> from django.contrib.sites.models import Site
>>> domain = Site.objects.get_current().domain
>>> obj = MyModel.objects.get(id=3)
>>> path = obj.get_absolute_url()

>>> url="http://{domain}{path}".format(domain=domain, path=path)
>>> print(url)
'http://example.com/mymodel/objects/3/'

https://docs.djangoproject.com/en/dev/ref/contrib/sites/#getting-the-current-domain-for-full-urls

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *