2013-03-04 3 views
0

나는 년/월 기반 블로그 아카이브를 만들려면 tutorial here을 따르려고합니다. 'www.example.com/blog/2013/feb'또는 'www.example.com/blog/2013'과 같은 URL을 방문하려고 할 때 위의 방법을 사용하여 TypeError: 'str' object is not callable이 표시됩니다.블로그 아카이브 Django

사용 된 방법이 위의 튜토리얼에서 사용 된 것과 같은지 정말로 신경 쓰지 않습니다. 사용자가 'example.com/blog/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을 :

을 여기에 2013 년에 만든 개체의 내가 지금까지 무엇을 가지고
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'), 

날짜 기반 보관 파일을 만드는 데 도움이되는 아이디어에 감사드립니다. 귀하의 의견에 감사드립니다.

+0

'Blog.objects.date() '틀렸어. 너 여기서 뭘 하려니? 나는 당신이'Blog.objects.all()'또는 비슷한 것을 원한다고 생각한다. – mVChr

+0

당신의 절대 url은 당신의 현재 url이 정의 된 year 값인 – catherine

+0

인 @mVChr을 주셔서 감사하지만'Blog. objects.all()'도 같은 'TypeError'가됩니다. 'Blog.objects.date()'는 여기에 설명 된 패턴을 따르므로 (내 모델 필드를 '날짜'라고하고 게시자를 '게시'라고 부름) : http://www.quxisto.com/2012/mar/7/a-typical-date-based-archive/ –

답변

0

__unicode__ 메서드는 유니 코드 개체를 반환해야합니다.

CharField입니다. 문자열 또는 버퍼 프로토콜 객체 만이 유니 코드 객체로 자동 변환 될 수 있습니다.

이 시도 :

def __unicode__(self): 
    return u'%s' % self.name 

또 다른 옵션을 위해 내장 된 파이썬 유형, 또는 자신의 __unicode__ 방법이있는 사용자 정의 클래스 :

def __unicode__(self): 
    return unicode(self.name) 
관련 문제