如何修复Django中的错误?

时间:2019-01-09 11:00:35

标签: python django

我已经尽力了,但是我不能解决这个错误。我是一个初学者,模仿书中的内容。帮帮我。

这是我的 fistsite / urls.py 源代码。

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

from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('/polls', views.polls, name='polls'),
    path('/admin', views.admin, name='admin')
]

这是我的 polls / urls.py

from django.urls import path
from . import views


app_name = 'polls'
urlpatterns = [
    path('', views.index, name='index'),
    path('<int:question_id>/', views.detail, name='detail'),
    path('<int:question_id>/result/', views.results, name='results'),
    path('<int:question_id>/vote/', views.vote, name='vote')
]

但是有一个错误。

enter image description here

这是我的项目。

enter image description here

救救我!

4 个答案:

答案 0 :(得分:0)

我怀疑由于行firstsite/urls.pyfrom . import views中发生了错误。

根据您的项目结构图像,没有文件firstsite/views.py。删除import语句或从其他地方导入应该可以解决此问题。


下次添加整个堆栈跟踪信息,而不仅仅是最后一条错误消息。这样就很容易看到哪一行引发了错误。


如果您尝试将polls/views.py导入firsite/urls.py,则可以尝试类似from ..polls import views的操作。

答案 1 :(得分:0)

我认为您不能将app的视图导入到主项目的urls.py中。只是尝试排除'from'。导入视图from the fistsite / urls.py`。 现在应该可以工作了。

尝试执行以下代码。

fistsite / urls.py

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

urlpatterns = [
    path('', views.index, name='index'),
    path('/polls', views.polls, name='polls'),
    path('/admin', views.admin, name='admin')
]

投票/urls.py

from django.urls import path
from . import views

app_name = 'polls'
urlpatterns = [
    path('', views.index, name='index'),
    path('<int:question_id>/', views.detail, name='detail'),
    path('<int:question_id>/result/', views.results, name='results'),
    path('<int:question_id>/vote/', views.vote, name='vote')
]

或在viewapp内创建所有include(app.urls)函数到主项目的urls.py中。

答案 2 :(得分:0)

我认为您在错误的文件中添加了网址。项目中有两个url.py。您上面的那个应该是“ polls”目录中的那个,看起来应该像这样:

polls/url.py

    from django.urls import url, include

    from . import views

    urlpatterns = [
        url(r'^$', views.index, name='index'),
        url('^polls/', views.polls, name='polls'),
        url('^admin/', views.admin, name='admin')
    ]

第一个网站内的firstsite/urls.py应该看起来像这样:

    from django.conf.urls import include, url
    from django.contrib import admin

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

区别在于,第一个是应用程序polls的网址,第二个是整个项目的网址。一个项目中可以有许多应用程序。

希望有帮助。

答案 3 :(得分:0)

您在错误的url.py中写了“从。导入视图”。您应该只在polls / urls.py中写它。

当您输入“。”时。 Django不会查看内部应用程序投票。

如果要执行此操作,请如下更改代码:

在fistsite / url.py中:

''''

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

from polls import views

urlpatterns = [
    path('', views.index, name='index'),
    path('/polls', views.polls, name='polls'),
    path('/admin', views.admin, name='admin')
]

''''

民意调查/urls.py

''''

from django.urls import path
from . import views

app_name = 'polls'
urlpatterns = [
    path('', views.index, name='index'),
    path('<int:question_id>/', views.detail, name='detail'),
    path('<int:question_id>/result/', views.results, name='results'),
    path('<int:question_id>/vote/', views.vote, name='vote')
]

''''