Django URL随机显示ImproperlyConfigured

时间:2018-01-13 05:28:42

标签: python django django-urls

我有时收到一个不正确的配置"包含的URLconf' app_name.urls'似乎没有任何模式。"在我的网站上。  当我重新访问导致错误的URL时,它工作正常。错误显示"模式"在这些情况下是一个模块。大多数情况下它会正确加载我的网址。

有没有人发现我的网址存在问题?这是根网址replaceWith和详细信息页面(/)上发生的奇怪问题。我从未见过其他网址的错误,但是他们没有收到太多流量。我还没有能够重现错误,但我每天都会收到几次错误。

我使用Python 3.5.2和Django 2.0。我认为代码库是用Django 1.6编写的。我最近迁移到2.0,那时我注意到了这个问题。

我修改了django / urls / resolvers.py来记录'模式'变量,大部分时间我收到此列表:

(####/details)

urls.py

[<URLResolver <URLPattern list> (admin:admin) 'admin/'>,
 <URLPattern '<int:pk>/details' [name='details']>,
 <URLPattern 'check/' [name='check']>,
 <URLPattern 'logout/' [name='logout']>,
 <URLPattern 'search/' [name='search']>,
 <URLPattern 'features/' [name='features']>,
 <URLPattern 'terms-of-service/' [name='terms']>,
 <URLPattern 'privacy-policy/' [name='privacy']>,
 <URLPattern '' [name='index']>]

异常

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

from app_name import views
from app_name.result_view import SubmissionDetailView



handler404 = 'app_name.views.not_found_view'

urlpatterns = [
    path('admin/', admin.site.urls),
    path('<int:pk>/details', SubmissionDetailView.as_view(), name='details'),
    path('check/', views.check, name='check'),
    path('logout/', views.logout_view, name='logout'),
    path('search/', views.search, name='search'),
    path('features/', views.features, name='features'),
    path('terms-of-service/', views.terms, name='terms'),
    path('privacy-policy/', views.privacy, name='privacy'),
    path('', views.index, name='index'),
]

回溯

django.core.exceptions.ImproperlyConfigured: The included URLconf 'app_name.urls' 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.

1 个答案:

答案 0 :(得分:1)

代替这个;

from app_name import views
from app_name.result_view import 
SubmissionDetailView



handler404 ='app_name.views.not_found_view'

urlpatterns = [
    path('admin/', admin.site.urls),
    path('<int:pk>/details',SubmissionDetailView.as_view(), name='details'),
    path('check/', views.check, name='check'),
    path('logout/', views.logout_view, name='logout'),
    path('search/', views.search, name='search'),
    path('features/', views.features, name='features'),
    path('terms-of-service/', views.terms, name='terms'),
    path('privacy-policy/', views.privacy, name='privacy'),
    path('', views.index, name='index'),
]

您应该像这样将您的应用程序 url 包含到项目 urls.py 文件中:

项目 urls.py:

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

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

在 app_name 文件夹中创建一个 urls.py 文件,然后像这样描述你的 url:

app_name urls.py:

from django.urls import path
from . import views
from app_name.result_view import SubmissionDetailView

handler404 ='views.not_found_view'

urlpatterns = [
    path('<int:pk>/details',SubmissionDetailView.as_view(), name='details'),
    path('check/', views.check, name='check'),
    path('logout/', views.logout_view, name='logout'),
    path('search/', views.search, name='search'),
    path('features/', views.features, name='features'),
    path('terms-of-service/', views.terms, name='terms'),
    path('privacy-policy/', views.privacy, name='privacy'),
    path('', views.index, name='index'),
]