James Bennett의 실용적인 Django 프로젝트에서 coltrane (django 블로그)의 예제를 통해 나에게 맞춤 블로그의 시작점을 알려줍니다. 첫 번째 장에서 대부분의 작업을 수행하여 모든 블로그를 정리할 수 있었지만 일반보기로 전환하면 문제가 해결되는 것 같습니다.Coltrane 블로그 템플릿을 사용하는 일반 뷰의 문제점
내 블로그 나는 다음과 같은 views.py 사용할 때 작동: 나는 (첫 번째 URLPATTERN 사용) 블로그 항목의 목록을 만들 수 있습니다
entry_info_dict = {
'queryset': Entry.objects.all(),
'date_field': 'publish_date',
}
urlpatterns = patterns('',
('^blog/$','blog.views.entry_list'),
('^blog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$','django.views.generic.date_based.object_detail',entry_info_dict),)
다음을 사용 :
def entry_list(request):
return render_to_response('blog/entry_listing.html',
{ 'entry_list': Entry.objects.all() },
context_instance=RequestContext(request))
def entry_detail(request, year, month, day, slug):
date_stamp = time.strptime(year+month+day, "%Y%b%d")
publish_date = datetime.date(*date_stamp[:3])
entry = get_object_or_404(Entry, publish_date__year=publish_date.year,
publish_date__month=publish_date.month,
publish_date__day=publish_date.day,
slug=slug)
return render_to_response('blog/entry_detail.html',
{ 'entry': entry },
context_instance=RequestContext(request))
urls.py를 두 번째 URL 패턴을 사용하여 전체 항목을 보려면 '상세보기'를 입력하십시오.
entry_info_dict = {
'queryset': Entry.objects.all(),
'date_field': 'publish_date',
}
urlpatterns = patterns('',
('^blog/$', 'django.views.generic.date_based.archive_index', entry_info_dict),
('^blog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$','django.views.generic.date_based.object_detail',entry_info_dict),)
나는 (내 템플릿에 해당 변경 : 다음
내 url.py이되고, 그래서 내가, 주요 블로그 목록을 보여주기 위해 일반적인보기를 사용하려면 내 urls.py를 교환하는 것이 좋습니다 이 일반보기는 _archive.html 템플리트로 기본 설정되어 있으며 항목으로 '항목'대신 일반 '오브젝트'를 사용하므로 entry_archive.html을 작성하십시오. 그러나 아무것도 표시되지 않습니다.
템플릿은 다음과 같습니다
entry_archive.html
{% extends "base.html" %}
{% block content %}
<p>These are public blog entries.</p>
<ul>
{% for object in object_list %}
{% if object.status == object.LIVE_STATUS %}
{% include "blog/entry_summary.html" %}
{% endif %}
{% endfor %}
</ul>
{% endblock %}
entry_summary.html
<div class="blog_entry">
<h2 class="blog_title">{{ object.title }}</h2>
<div class="blog_date">Published on {{ object.publish_date }}</div>
<div class="blog_summary">{{ object.summary }}</div>
<div class="blog_image"></div>
<div class="blog_url"><a href="{{ object.get_absolute_url }}">Read full entry</a></div>
</div>
꽤 괜찮 않을 무슨에 어떤 생각?
어떤 장고 버전입니까? –
장고 버전 1.3.1을 사용하고 있습니다. –