【问题标题】:NoReverseMatch ... and keyword arguments '{}' not found. 0 pattern(s) tried: []NoReverseMatch ... 和关键字参数“{}”未找到。尝试了 0 种模式:[]
【发布时间】:2016-01-31 16:32:19
【问题描述】:

我是 Django 新手。我已经尝试了很多次教程。我现在已经开始了自己的项目,直到遇到 NoReverseMatch ... 并且找不到关键字参数“{}”。尝试了 0 个模式:[]

我的模板 section_list.html

{% for section in section_name %}
    <a href='{% url 'employee_listings' hsection section %}' >
       {{ section }}

 </br>
{% endfor %}

urls.py

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^letters/(?P<employee_id>\d+)$', views.letters, name='letters'),    
    url(r'(?P<word>\d+)/$', views.headsection_listings, name='headsection_listings'),
    url(r'(?P<hsection>\w+)$', views.section_listings, name='section_listings'),
    url(r'(?P<hsection>\w+)/(?P<section>\w+)/$', views.employee_listings, name='employee_listings'),
    )

views.py

def employee_listings(request, hsection, section):
    #import pdb; pdb.set_trace()
    employee_list = Employee.objects.all()
    employee_id = [p.emp_id for p in employee_list if p.section.section_name == section]
    employee_name = [p.emp_first_name +' ' +  p.emp_last_name for p in employee_list if p.section.section_name == section]
    #    import pdb; pdb.set_trace()
    context = {'employee_name':employee_name, 'section':section, 'employee_id':employee_id}
    return render(request, 'kapra/employee_list.html', context)

def section_listings(request, hsection):
    section_list = Section.objects.all()
#    import pdb; pdb.set_trace()
    section_name = [p.section_name for p in section_list if p.headsection.head_section_name == hsection]
    context = {'section_name':section_name, 'hsection':hsection}
    return render(request, 'kapra/section_list.html', context)

浏览器输出: /kapra/Administration 中的 NoReverseMatch

Reverse for 'section_listings' with arguments '(u'Administration', u'Employee Admin')' and keyword arguments '{}' not found. 0 pattern(s) tried: []
.... Reverse for 'section_listings' with arguments '(u'Administration', u'Employee Admin')' and keyword arguments '{}' not found. 0 pattern(s) tried:[]

django_version 1.6.11 如果我不使用 {% url %} 并使用 {/kapra/...} 格式,它就可以工作。

【问题讨论】:

  • section_listing 似乎只有 1 个关键字。
  • 对不起,我最初发布了不相关的观点,现在已编辑。视图 section_listings 实际上没有匹配。
  • 您正在尝试解决一个不存在的 url。也许试试 {% url 'employee_listings' hsection section %}
  • 或者更新您的 section_listing 网址以接收 2 个关键字,而不是 1 个。
  • 我很抱歉这个错误。我实际上尝试了 {% url 'employee_listings' hsection section %} 错误是 Reverse for 'employee_listings' 参数 '(u'Administration', u'Employee Admin')' 和关键字参数 '{}' 未找到。尝试了 0 个模式:[]

标签: python django templating


【解决方案1】:

您在调用的 URL 末尾缺少一个斜杠:

/kapra/Administration

应该是

/kapra/Administration/

考虑操作您的模式以允许省略斜线:

url(r'(?P<hsection>\w+)/(?P<section>\w+)/?$', views.employee_listings, name='employee_listings'),

注意最后一个斜线后面的? 根据documentation 对应url,当你应该通过kwargs 时,你正在通过args。尝试传递kwargs

{% for section in section_name %}
    <a href='{% url 'employee_listings' hsection=hsection section=section %}' >
       {{ section }}
     </br>
{% endfor %}

说明:

您可以将 args 传递给这样的模式:

url(r'^client/([0-9]+)/$', app_views.client, name='app-views-client')

但只有这样:

 url(r'(?P<hsection>\w+)/(?P<section>\w+)/$', views.employee_listings, name='employee_listings'),

您不能在一个 {% 'url' %} 调用中混合使用 kwargs 和 args

【讨论】:

  • 未找到带有参数“()”和关键字参数“{u'section': u'Employee Admin', u'hsection': u'Administration'}' 的“employee_listings”的反向。尝试了 0 个模式:[] 也不起作用。
  • 你确定吗?我将其解释为无法像这样混合它:{% url 'employee_listings' hsection=hsection section %}。因为在 1.8 中,我将参数传递给使用命名变量定义的 url,它工作得很好。
  • 我确定,我没有混合它。我在 Django 1.6.11
【解决方案2】:

除了 URL 名称之外,您还向 {% url ... %} 传递了两个参数:

{% url 'section_listings' hsection section %}

但是,您的urls.pyviews.py 都建议您只传递一个额外的参数:

# urls.py
url(r'(?P<hsection>\w+)$', views.section_listings, name='section_listings'),
# views.py:
def section_listings(request, section):

在你的模板中试试这个:

{% url 'section_listings' hsection %}

或者,由于您的 url 中有一个命名参数,您可以使用:

{% url 'section_listings' hsection=hsection %}

【讨论】:

猜你喜欢
  • 2016-03-18
  • 2015-10-15
  • 2020-10-21
  • 1970-01-01
  • 2018-03-28
  • 1970-01-01
  • 2016-11-21
  • 2017-08-12
  • 2014-11-23
相关资源
最近更新 更多