2011-06-16 11 views
5

Mantengo una aplicación de Internet de Django para un cliente mío. Lo construimos en Django y para los usuarios de computadoras, es genial. Ahora queremos atender a los usuarios de dispositivos móviles.Sitios de Django: diferentes urls.py para dos sitios

Además de un cambio de plantilla, también necesitamos que las cosas funcionen de manera diferente. La aplicación tendrá vistas que funcionan de una manera sutilmente diferente, pero también se debe simplificar la estructura de la URL.

Soy consciente de lo que voy a pedir que viole el espíritu seco, pero hay una buena manera de dividir la urls.py modo que la mitad de ella es para ourdomain.com y la otra mitad es para m.ourdomain.com? Si puedo hacer eso, puedo agregar un mobile_views.py y escribir las nuevas vistas.

Los sitios de Django están habilitados en el proyecto, pero me complace utilizar un código de estilo request.domain.startswith('m.')-hack. Parece que podría funcionar mejor, pero no tengo idea de cómo se obtiene la solicitud del archivo de URL.

Respuesta

6

Utilice middleware para detectar el acceso al otro sitio y configure request.urlconf en el otro urlconf que desee utilizar.

+0

Sí, eso va a funcionar para mí. Gracias. Editar: supongo que debe ser una de las primeras reglas de middleware que se active. ¿Y sabes si el 'reverse' de Django seguirá funcionando (suponiendo que las nuevas URL tengan los mismos nombres)? – Oli

+0

Puede que tenga que pasar 'request.urlconf' a [' reverse() '] (https://docs.djangoproject.com/en/dev/topics/http/urls/#django.core.urlresolvers.reverse), pero de lo contrario debería funcionar. –

Cuestiones relacionadas