添加项目网址

时间:2018-02-28 16:57:01

标签: django

我很高兴昨天在这里与我的网址Adding an additional template to an existing project errors out就这个问题与某人合作,但在尝试了所有建议之后我还处于相同的情况。

我的项目名为mysite,我的应用程序是搜索。

建议将以下内容添加到我的项目urls.py

url(r'^search/', include('search.urls')),

这样做时我给出了错误ModuleNotFoundError:没有名为' search'的模块。

我的项目urls.py如下:

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView
from django_filters.views import FilterView
from mysite.search.filters import UserFilter


urlpatterns = [
    url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
    url(r'^search/$', FilterView.as_view(filterset_class=UserFilter, template_name='search/user_list.html'), name='search'),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^search/', include('search.urls')),
]

我试图将以下内容添加到我的应用urls.py

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView
from django_filters.views import FilterView
from mysite.search.filters import UserFilter
from . import views


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

对于定义为

的结果,我有一个空视图
def results(request):

    return render(request, 'results.html')

当我尝试将以下POST添加到我的表单中以获得结果时,它会在第一篇文章中给出错误。当我在app.urls.py

中有结果网址时
  <form action = "{% url 'results' %}" form method = "POST">

这就是我目前的应用程序结构。请帮助我走上正确的轨道。谢谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

您的mysite目录位于settings.py目录中(包含mysite.search.urls的目录。这意味着您应该包含mysite.search(就像您使用INSTALLED_APPS一样在您的导入和from mysite.search.filters import UserFilter urlpatterns = [ ... url(r'^search/', include('mysite.search.urls')), ] )。

search

如果您的manage.py目录位于项目目录中(包含mysite的目录),那么您将从导入include()和{{1}中删除INSTALLED_APPS }。

from search.filters import UserFilter

urlpatterns = [
    ...
    url(r'^search/', include('search.urls')),
]