Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django NoReverseMatch,同时返回render()_Python_Django_Django Urls - Fatal编程技术网

Python Django NoReverseMatch,同时返回render()

Python Django NoReverseMatch,同时返回render(),python,django,django-urls,Python,Django,Django Urls,我总是收到一个NoReverseMatch错误,我不知道为什么。 这是错误消息: 任何事情都不可以/ 相反,对于带有参数(u'anything',)的“article_search”,未找到。尝试了1个模式:[“suche/(?P[-\w]+)/$”] 如您所见,我输入的url是带“-”而不是空格的,但Django正在寻找带空格而不是“-”的url模式 这是我的url模式: url(r'suche/(?P<search>[-\w]+)/$', views.article_se

我总是收到一个
NoReverseMatch
错误,我不知道为什么。 这是错误消息:

任何事情都不可以/

相反,对于带有参数(u'anything',)的“article_search”,未找到。尝试了1个模式:[“suche/(?P[-\w]+)/$”]

如您所见,我输入的url是带“-”而不是空格的,但Django正在寻找带空格而不是“-”的url模式

这是我的url模式:

    url(r'suche/(?P<search>[-\w]+)/$', views.article_search_view, name='article_search'),
正如我用“print()”语句检查的那样,在调用return render(…)语句时会引发错误。 如果改为执行返回重定向(…),则不会引发错误。 为完整起见,我的文章/list.html模板:

{% extends "base.html" %}
{% load static %}

{% block content %}

<div id =articles>
<div class="info_filter">
<div class="header_info_filter">
  {% if orderd_by == "not" %}
  <h1>Neueste Artikel</h1>
  {% endif %}
  {% if orderd_by == "distance" %}
  <h1>Artikel in Ihrer Nähe</h1>
  {% endif %}
  {% if orderd_by == "price_asc" %}
  <h1>Günstigste Artikel zuerst</h1>
  {% endif %}
  {% if orderd_by == "price_des" %}
  <h1>Teuerste Artikel zuerst</h1>
  {% endif %}
</div>

<div class="selection">
  {% if parameter1 %}
  <form action="{% url url_origin parameter1 parameter2 %}" method="post" accept-charset="utf-8">
    {% else %}
    {% if parameter %}
    <form action="{% url url_origin parameter %}" method="post" accept-charset="utf-8">
      {% else %}
      <form action="{% url url_origin %}" method="post" accept-charset="utf-8">
        {% endif %}
        {% endif %}
        {% csrf_token %}
        <div class="select_filter">
          <select name="filter" id="filter" >
            <option value="distance">Entfernung</option>
            <option value="price_asc">Preis, aufsteigend</option>
            <option value="price_des">Preis, absteigend</option>
          </select>
          <div class="search_filter_btn">
            <button type="submit" name="button">Sortieren</button>
          </div>
        </div>

      </form>
    </div>
    {% if parent_categorys %}
    <div class="category-path">
      Ergebnisse für:
      {% for category in parent_categorys %}
      <a href="{% url 'article_category' category.slug %}"> > {{ category.name }}</a>
      {% endfor %}
      {% if parameter2 %}
      : {{ parameter2}}
      {% endif %}
    </div>
    {% else %}
    Ergebnisse für: {{ parameter}}
    {% endif %}
  </div>
  <div id="main" class="article_list">
    {% for article in object_list %}
    <div class="item">
      <div class="list_img">
        <a href="{{ article.get_absolute_url }}">
          <img src="{% if article.main_picture %}{{ article.main_picture.url }}{% else %}{% static "img/no_image.png" %}{% endif %}">
        </a>

      </div>
      <div class= "articles_fee" >
        {{ article.fee }} €
      </div>
      <a href="{{ article.get_absolute_url }}">{{ article.title }}</a>
    </div>
    {% endfor %}
  </div>

</div>
{% endblock %}
{%extends“base.html”%}
{%load static%}
{%block content%}
{%if orderd_by==“not”%}
诺伊斯特·阿蒂克尔
{%endif%}
{%if orderd_by==“distance”%}
艾勒·纳赫的阿蒂克尔
{%endif%}
{%if orderd_by==“price_asc”%}
甘斯蒂格斯特·阿蒂克尔·祖尔斯特
{%endif%}
{%if orderd_by==“price_des”%}
特尔斯特·阿蒂克尔·祖尔斯特
{%endif%}
{%if参数1%}
{%else%}
{%if参数%}
{%else%}
{%endif%}
{%endif%}
{%csrf_令牌%}
恩特弗农
Preis,Aufsteigen
Preis,Absegned
索蒂耶伦
{%if parent_categoris%}
Ergebnisse für:
{父类别%中类别的百分比}
{%endfor%}
{%if参数2%}
:{{parameter2}}
{%endif%}
{%else%}
Ergebnisse für:{{parameter}}
{%endif%}
{对象_列表%中的项目的百分比}
{{article.fee}}}
{%endfor%}
{%endblock%}

如果您需要更多信息,请告诉我。

在您的视图中,您可以更改
搜索
并用空格替换连字符。这会在模板中使用url标记时导致错误,因为url模式不允许使用空格

{% url url_origin parameter %}
您可以通过将原始搜索段塞添加到模板上下文来修复此问题:

def article_search_view(request, search=None):
    """Filters all articles depending on the search and renders them"""
    search_slug = search
    articles = get_active_not_rented_articles()
    search = re.sub(r"[-]", ' ', search)
    ...
    return render(request, 'article/list.html', {'object_list':articles, 'url_origin':'article_search', 'parameter':search, 'search_slug': search_slug, 'orderd_by':orderd_by})
然后更改url标记:

{% url url_origin search_slug %}

我无法理解这些参数是什么,也无法理解您为什么试图在URL中而不是在发布的表单数据中发送它们。请尝试将正则表达式更改为:
r'suche/(?P[\w\-]+)/$”
看看是否有效。伊万诺夫:我试过了,但我没有解决这个问题,同样的错误丹尼尔·罗斯曼:因为想要理解URL这个问题来自于你的模板。您正在构建的
url
s正在导致未解析的引用。尝试删除带有url的代码(
{%url'article_category'category.slug%}
,以及list.html中表单上的所有
操作=
),然后查看问题是否仍然存在。我相信这是导致django崩溃的原因,但另一方面我不确定为什么。我猜1个或更多的链接是坏的。希望这有帮助!该模板适用于所有其他调用“/suche/hhhh/”或其他许多调用,因此我不认为这些HREF是问题所在非常感谢,这就是解决方案!
{% url url_origin search_slug %}