El La razón por la que respondo esta pregunta es porque fue respondida hace años y esas respuestas ya no son correctas o útiles para las versiones más nuevas de Django, o hay una mejor práctica que debe conocer.
Por lo tanto, si tiene más de una aplicación en su proyecto Django, debe usar un nuevo archivo urls.py para cada una de sus aplicaciones. Significa que si inicia una nueva aplicación, debe crear manualmente un nuevo archivo llamado urls.py en la subcarpeta de su nueva aplicación. Muchos principiantes primero no entienden por qué esto es bueno, pero esta es una buena práctica si planea crear más aplicaciones en un proyecto de Django.
Cuando inicia un proyecto, el archivo urls.py se crea automáticamente en su carpeta de proyecto, pero si crea/inicia una nueva aplicación en Django, entonces es una buena práctica si crea un urls.py separado para ese aplicación en su propia carpeta. (Y de esa manera nunca tendrás el problema de "importar diferentes vistas de aplicaciones en urls.py" en primer lugar).
Después de crear el archivo urls.py para su aplicación, entonces usted tiene que incluyen ese archivo urls.py de aplicación en el archivo urls.py de su proyecto de la siguiente manera:
Veamos un ejemplo, cuando creas una nueva aplicación llamada 'my_new_app'. Esta es la forma en archivo urls.py principal de su proyecto debe verse como:
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^my_new_app/', include('my_new_app.urls')),
]
En urls.py archivo de su proyecto que tiene que importar el método de 'incluir', entonces usted puede incluir su archivo urls.py my_new_app en el archivo urls.py principal de su proyecto. En su carpeta my_new_app, debe crear manualmente un archivo urls.py como mencioné anteriormente. Luego debes usar ese archivo para todos tus patrones de tu my_new_app. Entonces, por supuesto, de esta manera se incluirá automáticamente en el archivo urls.py principal de su proyecto.
Así que este es entonces cómo su propio archivo urls.py my_new_app debe verse como:
from django.conf.urls import url
from my_new_app import views
urlpatterns = [
url(r'^$', views.index, name = "index"),
]
Suponiendo que también se creó una primera vista se llama ‘índice’ en su ‘archivo my_new_app/views.py.
my_new_app/mirada archivo views.py así:
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello World!")
Y se puede comprobar su my_new_app en su navegador en:
http://localhost:8000/my_new_app
(por supuesto se puede dar a cualquier URL a su my_new_app en el archivo urls.py de su proyecto)
Ahora puede crear otra aplicación en su proyecto Django, llamada my_second_app, y debe repetir los pasos anteriores para esa aplicación también. De esta forma, no tendrás problemas para importar vistas de diferentes aplicaciones a archivos urls.py. Esta sería una "solución de buenas prácticas" muy básica para este problema en 2017 en Django 1.11.
Esto no funcionó, pero gracias por la sugerencia. – William
@Robert: Hubo un par de errores tipográficos (que arreglé), aparte de eso es una solución de trabajo. No tiene que copiar y pegar nuestras respuestas en su código, sería mejor comprenderlas y encontrar su propia manera de solucionar su problema. También puede [aceptar] (http://meta.stackexchange.com/a/5235/177799) la respuesta que más le ayudó. –
Rik, tu segunda sugerencia a través de Simon Visser también funcionó. Gracias. – William