something.com/1/arts-and-crafts
。
在下面发现并收到NoReverseMatch错误:
反向&#39;类别&#39;有争议的&#39;(2,你&#39; arts-and-crafts&#39;)&#39;和关键字参数&#39; {}&#39;未找到。尝试了2种模式:[&#39;(?P \ d +)/ [ - \ w] + / $&#39;,&#39;(?P \ d +)/ $&#39;] < /强>
以下是我正在使用的代码,非常感谢您在理解错误时提供的任何帮助:
模板html
<ul class="list-unstyled">
{% for category in categories %}
{% if forloop.counter < 10 %}
<li><a href="{% url 'category' category.id category.slug %}">
{{ category.cat_name}}</a></li>
{% endif %}
{% endfor %}
</ul>
url.py
url(r'^(?P<cat_id>\d+)/[-\w]+/$', 'guides.views.category', name='category'),
views.py
def category(request, cat_id):
categories = Category.objects.all()
guides = Guide.objects.filter(category__id=cat_id).order_by("created_date").reverse()
is_featured = Guide.objects.filter(category__id=cat_id).filter(featured=True)
selected_category = get_object_or_404(Category, pk=cat_id)
return render(request, 'guides/category.html', {'categories': categories, 'guides': guides, 'is_featured': is_featured, 'selected_category': selected_category})
答案 0 :(得分:0)
您的网址不会将slug捕获为参数,因此无法在反向调用中使用。将第二种模式更改为(?P<slug>[-\w]+)
或不使用category.id
标记中的{% url %}
。