我已经尽力了,但是我不能解决这个错误。我是一个初学者,模仿书中的内容。帮帮我。
这是我的 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')
]
但是有一个错误。
这是我的项目。
救救我!
答案 0 :(得分:0)
我怀疑由于行firstsite/urls.py
在from . 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')
]
或在view
和app
内创建所有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')
]
''''