【问题标题】:NoReverseMatch: Reverse for 'INSERT URL NAME' not foundNoReverseMatch:未找到“INSERT URL NAME”的反向
【发布时间】:2018-06-01 01:36:57
【问题描述】:

我正在学习 Django 表单,并且正在努力为表单呈现一个基本的“结果”页面。

如果有人能指出我做错了什么,我将不胜感激!在此先感谢:)

错误

NoReverseMatch at /search_query/
Reverse for 'results' not found. 'results' is not a valid view function or pattern name.
Request Method: POST
Request URL:    http://ozxlitwi.apps.lair.io/search_query/
Django Version: 2.0
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'results' not found. 'results' is not a valid view function or pattern name.
Exception Location: /mnt/data/.python-3.6/lib/python3.6/site-packages/django/urls/resolvers.py in _reverse_with_prefix, line 632
Python Executable:  /mnt/data/.python-3.6/bin/python
Python Version: 3.6.5
Python Path:    
['/mnt/project',
 '/mnt/data/.python-3.6/lib/python36.zip',
 '/mnt/data/.python-3.6/lib/python3.6',
 '/mnt/data/.python-3.6/lib/python3.6/lib-dynload',
 '/usr/local/lib/python3.6',
 '/mnt/data/.python-3.6/lib/python3.6/site-packages']
Server time:    Fri, 1 Jun 2018 10:00:20 +0900

views.py

def search_query(request):

    # If POST request, process the Form data:
    if request.method == 'POST':

        # Create a form instance and populate it with the data from the request (binding):
        form = SearchQueryForm(request.POST)

        # Check if the form is valid:
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('results'))

    else:
        form = SearchQueryForm()

    context = {'form':form}
        return render (request, 'mapping_twitter/search_query.html', context)

def results(request):
    context = {'form':form}
    return render(request, 'mapping_twitter/results.html', context)

ma​​pping_twitter/urls.py

from django.urls import path

from . import views

app_name = 'mapping_twitter'
urlpatterns = [
    path('', views.search_query, name='search-query'),
    path('results/', views.results, name='results'),
]

ma​​pping_data/urls.py

urlpatterns = [
    path('search_query/', include('mapping_twitter.urls')),
    path('admin/', admin.site.urls),
    path('', RedirectView.as_view(url='/search_query', permanent=True)),
]

ma​​pping_twitter/results.html

<!--- DRAFT --->
Display search results here

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    如果您的results 端点位于名为mapping_twitter 的应用程序中,那么您可以使用reverse('mapping_twitter:results') 进行访问。

    关于反转命名空间 URL 的进一步阅读:https://docs.djangoproject.com/en/2.0/topics/http/urls/#reversing-namespaced-urls

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 2020-12-19
      • 2018-06-07
      • 1970-01-01
      • 2021-03-01
      • 2013-10-05
      • 2018-06-07
      • 1970-01-01
      • 2018-09-08
      相关资源
      最近更新 更多