我正在学习Django,我遇到模板问题。
我正在尝试向扩展模板添加内容。
我的代码结构:
base.html
category
-- category_detail.html
-- list_content.html
category_detail.html
{% extends 'base.html' %}
{% block title %}
{{ category_name }}
{% endblock %}
{% block description %}
{{ category_description }}
{% endblock %}
{% block content %}
<div class="col-md-10 text-center">
<a href="{% url 'charts:category_error_list' category_name %}" id="list-button" class="btn btn-success btn-lg active" role="button" aria-pressed="true">Error list</a>
</div>
{% endblock %}
带按钮的简单子页面。按钮应重定向到另一个模板,hovewer它给我NoReverseMatch。
list_content.html(在视图中定义了category_error_list)
{% extends 'category/category_detail.html' %}
{% block content %}
{{ block.super }}
<h1 class="page-header"> Some string</h1>
{% endblock %}
我想要实现的是在按钮下显示“Some string”。 (我知道应该用AJAX做得更好,但我想学习基础知识)。
urls.py
urlpatterns = [
url(r'^category/$', views.categories_list, name='categories'),
url(r'^category/(?P<category_name>\w+)/$', views.category_detail, name='category_detail'),
url(r'^category/(?P<category_name>\w+)/list/$', views.category_error_list, name='category_error_list'),
]
views.py
# ${url}/category/${category}
def category_detail(request, category_name):
cat_detail = Category.objects.get(name=category_name)
return render(request, 'charts/category/category_detail.html',
{'category_name': cat_detail.name,
'category_description': cat_detail.description})
#${url}/category/${category}/list
def category_error_list(request, category_name):
category_with_errors = Category.objects.filter(name=category_name)
error_list = Error.objects.get(category=category_with_errors)
return render(request, 'charts/category/list_content.html',
{'errors_list': error_list})
问题似乎与urls.py
有关,但我找不到有什么问题。
堆栈跟踪:
Template error:
In template
/usr/src/app/analizer/charts/templates/charts/category/list_content.html, error at line 0
Reverse for 'category_error_list' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['category/(?P<category_name>\\w+)/list/$']
1 : {% extends 'category/category_detail.html' %}
2 :
3 : {% block content %}
4 : {{ block.super }}
5 : <h1 class="page-header"> Cos tam </h1>
6 : {% endblock %}
7 :
8 :
如果我将删除block.super
标记,它正在运行,但我正在覆盖父模板上的内容。我做错了什么?
我正在使用Django-1.9.4。
答案 0 :(得分:0)
我找到了解决方案 - 这对我来说不直观 - 但它正在发挥作用。
查看<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-with-addons.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-dom.min.js"></script>
缺少category_error_list
变量,所以我修复了它但是:
category_name