powodem, dla którego odpowiadam na to pytanie, jest to, że odpowiedź została udzielona lata temu, a odpowiedzi te nie są poprawne lub przydatne dla nowszych wersji Django, lub jest lepsza praktyka, o której powinieneś wiedzieć.
Tak więc, jeśli masz więcej niż jedną aplikację w swoim projekcie Django, powinieneś użyć nowego pliku urls.py dla każdej aplikacji. Oznacza to, że jeśli uruchomisz nową aplikację, musisz ręcznie utworzyć nowy plik o nazwie urls.py w podfolderze nowej aplikacji. Wielu początkujących nie rozumie, dlaczego jest to dobre, ale jest to dobra praktyka, jeśli planujesz tworzyć więcej aplikacji w jednym projekcie Django.
Po uruchomieniu projektu plik urls.py zostanie automatycznie utworzony w folderze projektu, ale jeśli utworzysz/uruchomisz nową aplikację w Django, dobrym pomysłem jest utworzenie osobnego pliku urls.py dla tego pliku. aplikacja w swoim własnym folderze. (I w ten sposób nigdy nie będziesz mieć problemu z "importowaniem różnych aplikacji do urls.py").
Po utworzeniu pliku urls.py dla swojej aplikacji, a następnie trzeba obejmują że plik urls.py app w pliku urls.py Twojego projektu w następujący sposób:
Spójrzmy na przykład podczas tworzysz nową aplikację o nazwie "my_new_app". ten sposób główny plik urls.py Twój projekt powinien wyglądać następująco:
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')),
]
W urls.py złożyć projektu trzeba importować metodę „obejmować”, a następnie można dołączyć plik urls.py my_new_app w główny plik urls.py Twojego projektu. W folderze my_new_app musisz ręcznie utworzyć plik urls.py, jak wskazałem powyżej. Następnie musisz użyć tego pliku dla wszystkich twoich urlwzorów twojej my_new_app. Wtedy oczywiście zostanie automatycznie włączony do głównego pliku urls.py twojego projektu.
Więc to jest to jak Twój my_new_app własny plik urls.py powinna wyglądać następująco:
from django.conf.urls import url
from my_new_app import views
urlpatterns = [
url(r'^$', views.index, name = "index"),
]
Zakładając, że stworzył także pierwszy widok o nazwie „Indeks” w „my_new_app pliku/views.py.
my_new_app/views.py plik wyglądać następująco:
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello World!")
I można sprawdzić my_new_app w przeglądarce pod adresem:
http://localhost:8000/my_new_app
(Oczywiście można podać dowolny adres URL do my_new_app w pliku urls.py twojego projektu.)
Teraz możesz utworzyć kolejną aplikację w swoim projekcie Django o nazwie my_second_app i powinieneś powtórzyć powyższe kroki dla tej aplikacji. W ten sposób nie będziesz miał problemu z importowaniem widoków z różnych aplikacji do plików urls.py. Byłoby to bardzo podstawowe "dobre rozwiązanie" dla tego problemu w 2017 roku w Django 1.11.
To nie działało, ale dzięki za sugestię. – William
@Robert: Było kilka literówek (które naprawiłem), poza tym jest to działające rozwiązanie. Nie musisz kopiować i wklejać naszych odpowiedzi do kodu, lepiej byłoby je zrozumieć i znaleźć własny sposób rozwiązania problemu. Możesz również [zaakceptować] (http://meta.stackexchange.com/a/5235/177799) odpowiedź, która pomogła ci najbardziej. –
Rik, twoja druga sugestia za pośrednictwem Simona Vissera również zadziałała. Dzięki. – William