Django mappage d'URL - NameError: name X n'est pas définie

[Une question semblable a été posée, mais pas marqué comme réponse, ici. J'ai envisagé de poursuivre ce fil, mais le site me dit que je ne suis censé poster une réponse, donc il semble que je dois commencer un nouveau sujet.] Je suis en train de suivre cette tutoriel et je vais avoir des problèmes avec le mappage d'URL. Spécifiquement avec la partie décrite comme "Donc, la meilleure pratique est de créer un “url.py” par application et de l'inclure dans nos principaux projets url.py le fichier". Pertinentes, je l'espère, une partie de la structure de dossier, qui se pose en suivant les étapes du tutoriel à la lettre (si possible; l'utilisation de la "patrons" module a été impossible, par exemple) et à l'aide de Django 1.10 est la suivante:

myproject/
  myapp/
    urls.py
    views.py
  myproject/
    urls.py

L'myproject/urls.py est comme suit:

from django.conf.urls import include, url

from django.contrib import admin
admin.autodiscover()

from myapp.views import hello

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^myapp/', include(myapp.urls)),
]

L'myapp/urls.py est comme suit:

from django.conf.urls import include, url

urlpatterns = [
    url(r'^hello/', myapp.views.hello),
]

L'myapp/views.py est comme suit:

from django.shortcuts import render

def hello(request):
   return render(request, "hello.html", {})

Toutefois, l'exécution de la " python manage.py runserver résultats dans l'erreur suivante:

url(r'^myapp/', include(myapp.urls)),
NameError: name 'myapp' is not defined

Dans INSTALLED_APPS settings.py contient 'myapp'.

Je serais reconnaissant pour les conseils sur la façon de traiter avec les NameError! [Ou des conseils que ce soit que quelqu'un pourrait considérer être utile!]

  • Merci pour le commentaire. Django 1.10 semble être la "dernière version officielle", selon le site web de Django. Je pensais que c'be raisonnable pour l'installer. Je ne sais pas ce que la classe de base point de vue " sont. Je vais enquêter. Mais êtes-vous sûr que c'est la racine de l'NameError?
  • Le tuto vous-même liée à l'écrit pour Django 1.6 ou une version antérieure (admin.autodiscover() n'a pas été nécessaire puisque Django 1.7) . Beaucoup de choses ont changé depuis, alors que je ne recommande pas de le suivre. Le officiel Django 1.10 tutoriel vous montre comment créer une application avec une url de la config qui va travailler avec Django 1.10.
  • Je vous remercie beaucoup. Je vais passer pour le nouveau tutoriel.