django date_based object_detail问题

时间:2011-04-28 14:04:41

标签: python django-models

我是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

1 个答案:

答案 0 :(得分:0)

您的基于日期的网址指的是object_detail视图,而不是archive_index