私はいつもNoReverseMatch
というエラーを受け取りましたが、その理由はわかりません。 これはエラーメッセージです:/ suche /任意の-ものでDjango NoReverseMatch return render()
NoReverseMatch /引数を指定して 'article_search' '(u'any事'、)のための
リバース」が見つかりません。 1つのパターンを試しました:['suche /(?P [ - \ w] +)/ $']
私が見ることができるように、空白の代わりに " - "しかし、Djangoは " - "の代わりにスペースでURLパターンを探しています。
これは私のURLパターンです:エラー、私は "印刷()" 文で確認したよう
def article_search_view(request, search=None):
"""Filters all articles depending on the search and renders them"""
articles = get_active_not_rented_articles()
search = re.sub(r"[-]", ' ', search)
articles = articles.filter(title__icontains=search)
articles = aply_sort(request, articles)
orderd_by = articles[0].get('filter')
articles = articles[1]
return render(request, 'article/list.html', {'object_list':articles, 'url_origin':'article_search', 'parameter':search,
'orderd_by':orderd_by})
:
url(r'suche/(?P<search>[-\w]+)/$', views.article_search_view, name='article_search'),
は、驚くべきことにDjangoはこのようになりますこれは、私のarticle_search_viewを計算するために開始しますreturn render(...)文が呼び出されると呼び出されます。 代わりにreturnリダイレクト(...)を実行すると、エラーは発生しません。完全、私の記事/する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 %}
は、あなたがより多くの情報が必要なら、私に教えてください。
を投稿されたフォームデータではなく、URLで送信しようとしているのはなぜですか。 –
試して正規表現を次のように変更してください: 'r'suche /(?P [\ w \ - ] +)/ $ ''それがうまくいくかどうかを確認してください –
N.イワノフ:試してみましたが、 、同じエラー Daniel Rosemann:包括的なURLが必要なのです – FantaRainer