Kel*_*elp 2 django django-templates
我正在读一本书(Practical Django Projects 2nd Ed.),我遇到了一个我无法弄清楚的错误.
我收到此错误:/ weblog /上的TemplateSyntaxError
渲染时捕获NoReverseMatch:反向'coltrane_category_list',参数'()'和关键字参数'{}'未找到.
以下是我的模板中使用{%url%}的代码:
<li id="main-nav-entries">
<a href="{% url coltrane_entry_archive_index %}">Entries</a>
</li>
Run Code Online (Sandbox Code Playgroud)
这是我的URL配置:
entry_info_dict = {
'queryset': Entry.objects.all(),
'date_field': 'pub_date',
}
urlpatterns = patterns('django.views.generic.date_based',
(r'^$', 'archive_index', entry_info_dict, 'coltrane_entry_archive_index'),
(r'^(?P<year>\d{4})/$', 'archive_year', entry_info_dict, 'coltrane_entry_archive_year'),
(r'^(?P<year>\d{4})/(?P<month>\w{3})/$', 'archive_month', entry_info_dict, 'coltrane_entry_archive_month'),
(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$', 'archive_day', entry_info_dict, 'coltrane_entry_archive_day'),
(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$', 'object_detail', entry_info_dict, 'coltrane_entry_detail'),
)
Run Code Online (Sandbox Code Playgroud)
错误是什么意思?我没有给它足够的论据吗?{%url%}如何运作?根据我的理解,它将查看URL配置并查找匹配的关键字,并根据URL配置中的匹配关键字返回URL.
您必须使用url模式上的函数才能正确注册该模式的名称.有关命名url模式的信息,请参阅Django文档.
基本上,将您的模式更改为:
urlpatterns = patterns('django.views.generic.date_based',
url(r'^$', 'archive_index', entry_info_dict, name='coltrane_entry_archive_index'),
url(r'^(?P<year>\d{4})/$', 'archive_year', entry_info_dict, name='coltrane_entry_archive_year'),
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/$', 'archive_month', entry_info_dict, name='coltrane_entry_archive_month'),
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$', 'archive_day', entry_info_dict, name='coltrane_entry_archive_day'),
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$', 'object_detail', entry_info_dict, name='coltrane_entry_detail'),
)
Run Code Online (Sandbox Code Playgroud)
我认为它不使用name=作为命名arg,但我总是喜欢,因为它对我来说更明确.
| 归档时间: |
|
| 查看次数: |
2383 次 |
| 最近记录: |