2
votes

Comment corriger l'erreur '' module 'object is not iterable' ', en Python avec le projet Django

J'essaye de créer une page Web en utilisant Python et Django . Je viens de créer un modèle simple et j'ai essayé d'exécuter le serveur, mais j'obtiens des erreurs et je ne suis pas en mesure de comprendre.

Je vérifie toute l'orthographe de mes projets et j'ai recherché les problèmes similaires, mais je ne suis pas en mesure de résolvez-le.

settings.py

"C:\Users\User\Desktop\python_work\project_3\learning_log\11_env\lib\site-packages\django\urls\resolvers.py", line 535, in url_patterns
    iter(patterns)
TypeError: 'module' object is not iterable

During handling of the above exception, another exception occurred:

.....

"C:\Users\User\Desktop\python_work\project_3\learning_log\11_env\lib\site-packages\django\urls\resolvers.py", line 542, in url_patterns
    raise ImproperlyConfigured(msg.format(name=self.urlconf_name))
django.core.exceptions.ImproperlyConfigured: The included URLconf '<module 'learning_logs.urls' (namespace)>'
  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.

urls.py

XXX

views.py

"""Defines url patterns for learning_logs."""

from django.urls import path
from . import views

app_name = 'learning_logs'
urlpatterns = [
    # Home page.
    path('', views.index, name='index'),
    ]

urls.py // Ceci est la seconde URL

from django.shortcuts import render

# Create your views here.
def index(request):
    """The home page for Learning Log"""
    return render(request, 'learning_logs/index.html')

Erreur sur l'invite de commande lorsque j'ai essayé d'exécuter le serveur:

from django.urls import path, include
from django.contrib import admin

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('learning_logs.urls')),
    ]


0 commentaires

3 Réponses :


1
votes

Vous avez créé deux chemins dans les deux urls.py pour la page /.

Comme je le sais, ce n'est pas la bonne manière.

Vous devez créer un chemin vers /. Et créez le deuxième chemin en donnant n'importe quel nom de chemin comme

chemin (apprendre / '', inclure ('learning_logs.urls')


0 commentaires

0
votes

Dans votre projet urls.py, essayez de changer comme:

from django.urls import path, re_path, include
urlpatterns = [
   path('admin/', admin.site.urls),
   re_path(r'^', include('learning_logs.urls')),
]


0 commentaires

0
votes

Si vous voyez des modèles valides dans le fichier, le problème est probablement dû à une importation circulaire.

Vous devez d'abord vérifier que tous les packages installés sont installés dans l'environnement virtuel.
En cas de doute,
Supprimons tout sauf de setuptools, pkg_resources, pip des packages de site.

et puis Réinstaller dans un environnement virtuel

$ python3 -m pip install -r requirements.txt


0 commentaires