我是django的新手,试图创建一个基本博客作为一种有效的学习体验。我正在关注WebMonkey的教程,但是当我输入基于日期的URL时,我的视图不会返回任何结果。
转到/blog/
,我会收到所有博客条目的列表。
转到/blog/2011/04/24/
,模板会吐出静态html,但循环不会产生任何结果。
来自urls.py
的我的网址格式
info_dict = {
'queryset': Entry.objects.filter(status=1),
'date_field': 'pub_date',
}
urlpatterns = patterns('django.views.generic.date_based',
(r'(blog/(?P<year>[0-9]{4}))/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/(?P<slug>[-\w]+)/$', 'object_detail', dict(info_dict, allow_future=True, slug_field='slug',template_name='blog/detail.html')),
(r'^((blog/(?P<year>[0-9]{4}))/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/(?P<slug>[-\w]+)/$', 'object_detail', dict(info_dict, allow_future=True, template_name='blog/list.html')),
(r'^blog/$','archive_index', dict(info_dict, allow_future=True, template_name='blog/list.html')),
)
我的模板list.html
是
{% extends 'base.html' %}
{% block pagetitle %}Page Title{% endblock %}
{% block title %}Title: List{% endblock %}
{% block primary %}
{% for object in latest %}
<h2>For Debug</h2>
<h2>{{ object.title }}</h2>
<p> {{ object.pub_date }} </p>
{{ object.body_html|truncatewords_html:"20"|safe }}
<p>tags:{% for tag in object.get_tags%}
<a href="/tags/{{tag.name|slugify}}/">{{tag}}</a>
{% endfor %}
</p>
<p>
<a href="/blog{{object.get_absolute_url}}">more...</a>
</p>
{% endfor %}
{% endblock %}
来自models.py
的我的参赛作品模型:
class Entry(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(
unique_for_date='pub_date',
help_text='Automatically built from the title.'
)
body_html = models.TextField(blank=True)
body_markdown = models.TextField()
pub_date = models.DateTimeField('Date published')
tags = TagField()
enable_comments = models.BooleanField(default=True)
PUB_STATUS = (
(0, 'Draft'),
(1, 'Published'),
)
status = models.IntegerField(choices=PUB_STATUS, default=0)
我包含了两种情况的截图。为什么我的基于日期的网址没有返回任何结果?
博客条目的完整列表:http://i.stack.imgur.com/GtiyR.png
特定日期搜索:http://i.stack.imgur.com/Bc8G0.png
答案 0 :(得分:0)
您的基于日期的网址指的是object_detail
视图,而不是archive_index
。