Ich bin neu in Django und benutze Version 1.9.8. Ich folgte dem offiziellen Tutorial, und jetzt versuche ich this fortgeschrittener. Ich bin am Ende/Checkpoint des Abschnitts "Registrierung von Benutzern". Wenn ich http://localhost:8000/register
besuche, zeigt Django den Inhalt an, den ich auf meiner index.html-Seite unter gefunden habe, anstatt der, die während des Lernprogramms unter static/templates/authentication/register.html
erstellt wurde.Probleme mit Django-URLs
Als ich am Anfang, wo ich bin, wurde ich empfange die folgenden Fehler ImportError: cannot import name 'IndexView'
, Referenzierung den urls.py
#urls.py
from django.conf.urls import include,url
from django.contrib import admin
from django.conf.urls import patterns
from rest_framework_nested import routers
from authentication.views import AccountViewSet
router = routers.SimpleRouter()
router.register(r'accounts', AccountViewSet)
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/v1/', include(router.urls)),
url('^.*$', IndexView.as_view(), name='index'), #this line was causing the error
]
ich über this post von jemandem kam anders, im Tutorial folgte. Ich fügte hinzu, die IndexView Import meiner urls.py als solche
from authentication.views import AccountViewSet, IndexView
Und dann fügte ich eine IndexView Klasse meiner views.py
# authentication/views.py
....
class IndexView(TemplateView):
template_name = 'mytestproject/index.html' #this page is showing when I visit http://localhost:8000/register rather than the one located at static/templates/authentication/register.html
Der IndexView Fehler ging weg und der Server lief ohne Fehler, aber als ich http://localhost:8000/register
besuchte, wurde nichts angezeigt. Ich habe die Seite index.html geöffnet und Inhalt hinzugefügt und dann diesen Inhalt angezeigt. Django verwendet eindeutig die Indexdatei unter der Nummer anstelle der von mir erstellten Registerseite. Wie bekomme ich Django, um die Vorlage unter static/templates/authentication/register.html
zu verwenden, wenn ich die Registrierungs-URL besuche? Ich bin verwirrt, vor allem, weil keine Methoden namens "register" in der Ansicht während des Tutorials definiert oder in der Datei urls.py angegeben wurden.
Dank
Das ist der Teil, über den ich verwirrt bin. Soweit das Tutorial geht, wurden keine Servermethoden in serverseitig in views.py angelegt. Welche Ansicht und welchen Namen gebe ich dieser URL? Das einzige, was mit dem von mir erstellten Register zu tun hat, ist die Vorlage, die sich unter 'static/templates/authentication/register.html' befindet. Bedeutet das, dass das Tutorial Inhalt fehlt, oder verstehe ich etwas nicht? Verlassen sie sich möglicherweise auf das Routing des Winkels, um auf diese Vorlage zuzugreifen? Immerhin wurde es in den statischen Ordner gelegt. – user1852176
Ja, Sie müssen die Ansichtsfunktion schreiben, um eine Seite anzuzeigen, oder wenn Sie die integrierten Ansichten von django verwenden, müssen Sie nur diese Pakete in url.py importieren, [siehe dieses Beispiel für integrierte Authentifizierungsansichten] (https: // docs .djangoproject.com/de/1.9/topics/auth/default/#modul-django.contrib.auth.view) – masternone