es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Redirecciones específicas en Django Admin.

Tengo un sitio web Django donde todas las urls están apuntando a admin de esta manera:

urls.py (Root)

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('', admin.site.urls),
]

Me gustaría saber cómo hacer redirecciones específicas de una url a otra, ya que solo tengo un modelo para gestionar y una aplicación:

localhost/ => localhost/app/computer

localhost/app/ => localhost/app/computer

Intenté agregar esto a urls.py pero no funciona:

from django.http import HttpResponseRedirect

path('/', lambda request: HttpResponseRedirect('/app/computer/'))

También pensé en agregar urls.py a la aplicación, pero creo que puede haber un conflicto ya que path('/') estará presente en ambos urls.py, el de la raíz y el de la aplicación.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para hacer redirecciones específicas de una URL a otra, puedes agregar patrones de URL al archivo urls.py de tu aplicación. Dado que solo tienes una aplicación, puedes agregar los siguientes patrones de URL al archivo urls.py existente ubicado en el directorio raíz:

    from django.urls import path
    from django.views.generic import RedirectView
    
    urlpatterns = [
        path('', RedirectView.as_view(url='/app/computer/', permanent=True)),
        path('app/', RedirectView.as_view(url='/app/computer/', permanent=True)),
    ]
    

    El primer patrón de URL redireccionará la URL base a localhost/app/computer/ y el segundo patrón de URL redireccionará localhost/app/ a localhost/app/computer/ como se solicita.
    Ten en cuenta que estamos utilizando RedirectView en lugar de una función lambda para redirigir a la URL deseada.

    Asegúrate de que el patrón de URL existente que apunta a admin.site.urls se mantenga al final de la lista urlpatterns.

Comments are closed.