使用 % url % 的 NoReverseMatch

Posted

技术标签:

【中文标题】使用 % url % 的 NoReverseMatch【英文标题】:NoReverseMatch using % url %使用 % url % 的 NoReverseMatch 【发布时间】:2016-11-26 15:39:37 【问题描述】:

我正在尝试遵循此处给出的示例:Refresh <div> element generated by a django template

但我最终得到:

NoReverseMatch at /search/: 
Reverse for '' with arguments '()' and keyword arguments 
'u'flights':[FLIGHTS]' not found. 0 pattern(s) tried: []"

我看到很多与此错误相关的搜索结果,但它们似乎都不相关,除非我完全遗漏了什么。

search.html 中的 javascript:(已更新)

      <script>
        var flights =  flights | safe 

        $.ajax(
        url: % url 'search_results' flights %,
        success: function(data) 
        $('#search-results').html(data);
        
        );
      </script>

views.py:

def search_results(request, flights):
    return render_to_response('search_results.html', flights)

urls.py:(已更新)

url(r'^search/search_results/(?P<flights>[^/]*)$', "fsApp.views.search_results", name='search_results'),

预计到达时间:

我现在已经尝试了以下所有方法,但都没有奏效:

url(r'^search/(?P<flights>[^/]*)$', "fsApp.views.search_results", name='search_results'),                                                       
url(r'^search/search_results/(?P<flights>[^/]*)$', "fsApp.views.search_results", name='search_results'),
url(r'^search/(?P<flights>[^/]*)/search_results/$', "fsApp.views.search_results", name='search_results'),  

【问题讨论】:

search_results URL 不带任何参数,但您正试图将“航班”的值传递给它。 我已经尝试了三种不同的方法(基于响应和文档),但它们都不起作用。 【参考方案1】:

您缺少网址的名称:

url(r'^search/(?P<flights>[^/]*)/search_results/$', "fsApp.views.search_results", name='search_results'),

在您的模板中:

% url 'search_results' flights as url_search %

<script>
  ...
  url: ' url_search ',
  ...
</script>

Example from Django:

from django.conf.urls import url

from . import views

urlpatterns = [
    #...
    url(r'^articles/([0-9]4)/$', views.year_archive, name='news-year-archive'),
    #...
]

【讨论】:

您当前的 url 定义不期望 flights 参数 文档似乎建议它应该只是“r'^search/(?P[^/]*)/$'”?这也行不通。另一位评论者颠倒了航班和 search_results 部分,不。仍然出现同样的错误。 是的。但是 "url(r'^search/([.*])$', "fsApp.views.search_results", name='search_results')," 有点工作。 在您的 ajax 中:'% url 'search_results' flights %'。不要错过'

以上是关于使用 % url % 的 NoReverseMatch的主要内容,如果未能解决你的问题,请参考以下文章

什么是URL,怎么使用?

使用 sqlalchemy.engine.url.URL 为 mssql+pyodbc 构建连接 URL

url.parse() 的替换方法new URL(),URl.parse()的使用。

如何使用 Python 获取重定向的 URL

使用 url.URL 初始化后者时设置请求的上下文

在url中如果访问本地文件将使用file协议?