ここのチュートリアルに従って、年/月ベースのブログ アーカイブを作成しようとしています。'www.example.com/blog/2013/feb' または 'www.example.com/blog/2013' のような URL にアクセスしようとするとTypeError: 'str' object is not callable
、上記の方法を使用して取得します。
使用される方法が上記のチュートリアルと同じであるかどうかはあまり気にしません。ユーザーが「example.com/blog/2013/」にアクセスすると、アーカイブが機能して、作成されたオブジェクトのリストが表示されるようにしたいだけです2013.これが私がこれまでに持っているものです:
ビュー:
from django.views.generic import date_based
def post_archive_year(request, year):
return date_based.archive_year(
request,
year=year,
date_field='date',
queryset=Blog.objects.date(),
)
def post_archive_month(request, year, month):
return date_based.archive_month(
request,
year=year,
month=month,
date_field='date',
queryset=Blog.objects.date(),
)
モデル:
class Blog(models.Model):
name = models.CharField(max_length=50)
date = models.DateTimeField()
slug = models.SlugField()
article = models.TextField()
tags = TaggableManager()
def __unicode__(self):
return self.name
@permalink
def get_absolute_url(self):
return ('blog_detail', None, {
'year': self.date.year,
'month': self.date.strftime('%b').lower(),
'slug': self.slug
})
URL:
url(r'^blog/(?P<year>\d{4})/$', view='post_archive_year', name='post_archive_year'),
url(r'^blog/(?P<year>\d{4})/(?P<month>\w{3})/$', view='post_archive_month', name='post_archive_month'),
日付ベースのアーカイブを作成するのに役立つアイデアをありがとう。ご意見をお待ちしております。