django date_based object_detail проблема

1

Я очень новичок в django, пытаясь создать базовый блог в качестве рабочего опыта обучения. Я следую учебному курсу из WebMonkey, но мое представление не возвращает никакого результата при вводе URL-адреса, основанного на дате.

Переходя к /blog/, я получаю список всех записей в блоге. Переходя к /blog/2011/04/24/, шаблон выдает статический html, но цикл не дает никакого результата.

Мои шаблоны url из 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

Теги:
django-models

1 ответ

0

Ваш URL-адрес, основанный на дате, относится к представлению object_detail, а не к archive_index.

  • 0
    Спасибо за быстрый ответ! Я изменил на archive_index, но все равно не повезло :( (r '^ (? P <год> [0-9] {4}) / (? P <месяц> [az] {3}) / (? P <день> [0-9] {1,2}) / (? P <slug> [- \ w] +) / $ ',' archive_index ', dict (info_dict, template_name =' blog / list.html ')), I также пробовал этот шаблон URL, чтобы получить список на основе года, но я получаю тот же пустой результат ... (r '^ (? P <год> [0-9] {4}) / $', 'archive_year', dict ( info_dict, allow_future = True, template_name = 'blog / list.html')), есть идеи?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню