我的表格上没有匹配

2024-09-27 07:34:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直收到这个NoReverseMatch错误。 我的错误在<form action>标记处。但是如果我将格式改为<a href>标记中的格式,那么一切都没问题。我刚到Django,请给我引路。在

<html>
<head><title>Feedbacks</title></head>

<body>
    {% if store_list %}
        <ul>
            {% for store in store_list %}
                <li><a href="/feedbacks/{{ store.store_name }}/add/">{{ store.store_name }}</a></li>
                <form action="{% url 'view' store.store_name %}" method="post">
                    <input type="submit" value="Add" text="Add" />
                </form>
            {% endfor %}
        </ul>
    {% else %}
        <p>List is empty.</p>
    {% endif %}
</body>
</html>

我的网址.py在

^{pr2}$

我的视图.py在

from django.http import HttpResponse
from feedback.models import Store
from django.template import Context, loader
from django.shortcuts import render

def feedbacks(request):
    store_list = Store.objects.all()
    context = {"store_list" : store_list}
    return render(request, "feedback/feedbacks.html", context)

def add(request, store_name):
    return HttpResponse("I'm at the add page of %s. " % store_name)

def view(request, store_name):
    return HttpResponse("I'm at the view page of %s. " % store_name)

Tags: djangostorenamefromimportformviewadd
2条回答
  1. 您没有{% load url %}或{}。在
  2. Raunak Agarwal正确地强调了您尝试使用“view”函数而不是“add”。但在这两种情况下,传递的参数相同,所以它可以工作。在

In Django documentation你可以找到它。在

django1.5允许使用引号。如果您使用的是低于它的版本,请尝试删除它。在

<form action="{% url add store.store_name %}" method="post">

另外,您缺少csrf令牌,但错误与此无关。在

相关问题 更多 >

    热门问题