Je suis nouveau à Django, j'ai fait plusieurs tutoriels pour être vraiment à l'aise avec la structuration, et je cours maintenant dans le tutoriel officiel.Dans Django 1.11 obtenir des erreurs d'importation circulaire Lors de l'inclusion des fichiers URLconf de l'application dans le projet URLconf Fichier
J'ai créé un polls
App, qui a un fichier polls/views.py
comme suit:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello, World. You're at the polls index.")
J'ai aussi créé un fichier URLconf App polls/urls.py
avec le code suivant:
from django.conf.urls import url
from . import views
url_patterns = [
url(r'^$', views.index, name='index'),
]
Cette est à peu près exactement comme dans le tutoriel Django.
Mon problème est quand je suis en spécifiant les routes url dans le fichier principal projectname/url.py
au niveau du projet en tant que tel:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
Quand vous faites cela, je reçois l'erreur suivante:
django.core.exceptions.ImproperlyConfigured: The included URLconf '<module 'polls.urls' from 'ProjectFolder\\polls\\urls.py'>' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.
C'est ainsi que le tutoriel officiel de Django le dicte. Cependant, si j'importer explicity le fichier polls/views.py
de l'application, je peux accomplir la tâche comme suit:
from django.conf.urls import url
from django.contrib import admin
from polls import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^polls/', views.index),
]
Ma préoccupation immédiate est l'importation de toutes les applications/fichier urls je crée jamais été rendue nécessaire par cette approche, comme ainsi que la divergence évidente de l'instruction officielle Django.
J'ai hésité à poser cette question, car je pense qu'un problème aussi fondamental devrait avoir une solution facile. Toute aide serait grandement appréciée.
Pour clarifier, je peux contourner l'erreur en important explicitement les fichiers de vue des applications. Chaque fois que j'utilise l'approche décrite dans la documentation de Django pour utiliser la fonction include()
, je reçois l'erreur. Je peux apprécier la valeur de cette fonction, et aimerais savoir pourquoi me donne l'erreur décrite ci-dessus.
Le fichier 'polls/views.py' est le premier bloc de code dans ma question. – theeastcoastwest
pouvez-vous essayer de faire '' 'à partir de polls.views import index'''. Je pense qu'il y a un conflit lorsque vous importez des vues dans les deux fichiers. – Bestasttung
Oui, référence le deuxième bloc de code dans ma question. – theeastcoastwest