对于未找到参数'(1,)'的viewname反转

时间:2017-09-23 15:15:22

标签: python django

尝试启动服务器并获得以下异常(启动服务器会导致polls / index.html页面):

  

django.urls.exceptions.NoReverseMatch:反向'详细'用   参数'(1,)'未找到。尝试过1种模式:   [ '$(ΔP[0-9] +)']

如果我从index.html删除以下行,则会删除错误。但我不知道问题是什么。甚至ide也会提示当前数据。发现类似的问题,其中问题的参数数量不正确,而不是这种情况。请帮忙。

错误行:

{% for q in latest_question_list %}
    <li><a href="{% url 'polls:detail' q.id %}">{{ q.question_text }}</a></li>
{% endfor %}

的index.html

app_name = 'polls'

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^(?P<question_id>[0-9]+)', views.detail, name='detail'),
]

urls.py(在民意调查应用程序文件夹中)

def index(request):
    latest_question_list = Question.objects.order_by('pub_date')[:5]
    context = {'latest_question_list': latest_question_list}
    return render(request, 'polls/index.html', context)

def detail(request, question_id):
    return HttpResponse(question_id)

views.py

urlpatterns = [
    url(r'^$', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls'))
]

urls.py(主要)

export const formatDollar = (dollar) => {
  const format = function moneyFormat(val, sign = '$ ') {
    const pieces = parseFloat(val).toFixed(2).split('');
    let ii = pieces.length - 3;
    while ((ii -= 3) > 0) {
      pieces.splice(ii, 0, ',');
    }
    return sign + pieces.join('');
  };
  return format(dollar);
};

1 个答案:

答案 0 :(得分:3)

您已使用停止字符$(urls.py - main)

将您的投票网址包含在正则表达式中
highlight

这样就没有可能实现以下正则表达式

url(r'^$', include('polls.urls'))

如果您仍想显示民意调查索引作为您的索引网站,请从行

中删除$
 ['$(?P[0-9]+)'] 

此外,您有2个相同名称空间的包含,并使用它的第一个捕获(索引)

如果您更改了民意调查网址的名称空间,您甚至可以看到此内容

url(r'^', include('polls.urls'))

并使用namespaced include作为测试:详细信息(这应该可行,但我仍然建议您合并要包含投票URL的位置