2010-08-03 60 views
0

所以我正在做的Django实用项目教程,并走了很远。django教程卡住

我有这样的代码:

def get_absolute_url(self): 
    return ('coltrane_entry_detail',(), {'year': self.pub_date.strftime("%Y"), 
             'month': self.pub_date.strftime("%b").lower(), 
             'day': self.pub_date.strftime("%d"), 
             'slug': self.slug }) 
get_absolute_url = models.permalink(get_absolute_url) 

我得到一个错误压痕。

如果我缩进比我得到一个工作/网络日志/网址,但如果我点击“阅读更多”链接,我总是在同一页/博客/而不是/博客/日期/文章。

如果你知道教程,也许你知道的错误,如果不是这里的所有文件:

网址项目:

from django.conf.urls.defaults import * 
from Myproject.views import * 
from django.views.generic.simple import direct_to_template 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 

#Coltrane Project URlpatterns: 

    (r'^search/$', 'MyProject.search.views.search'), 
    (r'^weblog/$', include('coltrane.urls')), 

的url雷恩:

from django.conf.urls.defaults import * 
from coltrane.models import Entry 

entry_info_dict = { 
'queryset': Entry.objects.all(), 
'date_field': 'pub_date', 
} 

#Coltrane Project URlpatterns: 

urlpatterns = patterns('django.views.generic.date_based', 

    (r'^$', 'archive_index', entry_info_dict, 'coltrane_entry_archive_index'), 
    (r'^(?P<year>\d{4})/$', 'archive_year', entry_info_dict, 'coltrane_entry_archive_year'), 
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/$', 'archive_month', entry_info_dict, 'coltrane_entry_archive_month'), 
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$', 'archive_day', entry_info_dict, 'coltrane_entry_archive_day'), 
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$', 'object_detail', entry_info_dict, 'coltrane_entry_detail'), 
) 

型号:

import datetime 

from django.contrib.auth.models import User 
from django.db import models 

from markdown import markdown 
from tagging.fields import TagField 


class Category(models.Model): 
title = models.CharField(max_length=250, help_text='Maximum 250 characters.') 
slug = models.SlugField(unique=True, help_text='This is the shortname that is created. Must be unique!') 
description = models.TextField() 

class Meta: 
    ordering = ['title'] 
    verbose_name_plural = "Categories" 

def __unicode__(self): 
    return self.title 

def get_absolute_url(self): 
    return "/categories/%s/" %self.slug 

class Entry(models.Model): 
LIVE_STATUS = 1 
DRAFT_STATUS = 2 
HIDDEN_STATUS = 3 
STATUS_CHOICES = (
    (LIVE_STATUS, 'Live'), 
    (DRAFT_STATUS, 'Draft'), 
    (HIDDEN_STATUS, 'Hidden'), 
) 
#Core Fields. 

title = models.CharField(max_length=250, help_text='Maximum 250 characters.') 
excerpt = models.TextField(blank=True, help_text='A short summary of the entry. Optional!') 
body = models.TextField() 
pub_date = models.DateTimeField(default=datetime.datetime.now) 

#Fields to store generated HTML. 

excerpt_html = models.TextField(editable=False, blank=True) 
body_html = models.TextField(editable=False, blank=True) 

#Metadata 

author = models.ForeignKey(User) 
enable_comments = models.BooleanField(default=True) 
featured = models.BooleanField(default=False) 
slug = models.SlugField(unique_for_date='pub_date') 
status = models.IntegerField(choices=STATUS_CHOICES, default=LIVE_STATUS, help_text="Only entries with live status will be publicly displayed") 

#Categorization 
categories = models.ManyToManyField(Category) 
tags = TagField(help_text="Separate tags with spaces.") 


class Meta: 
    ordering = ['pub_date'] 
    verbose_name_plural = "Entries" 

def __unicode__(self): 
    return self.title 

def save(self, force_insert=False, force_update=False): 
    self.body_html = markdown(self.body) 
    if self.excerpt: 
    self.excerpt_html = markdown(self.excerpt) 
    super(Entry, self).save(force_insert, force_update) 

def get_absolute_url(self): 
    return ('coltrane_entry_detail',(), {'year': self.pub_date.strftime("%Y"), 
             'month': self.pub_date.strftime("%b").lower(), 
             'day': self.pub_date.strftime("%d"), 
             'slug': self.slug }) 
    get_absolute_url = models.permalink(get_absolute_url) 
+2

使用正确的缩进!单个空间不足以查看是否错误,因此IndentationError。使用四个空格。 – 2010-08-03 14:29:35

+0

如果你指的: 高清get_absolute_url(个体经营): 回报(“coltrane_entry_detail” 事实并非如此,它只是在这里显示有一个缩进在我真正的代码,它已收到回报 – MacPython 2010-08-03 14:49:40

+0

4空间找到了我的错误。 :这是在urls.py: (R '^博客/ $' 而不是 (R '^博客/' – MacPython 2010-08-03 15:13:22

回答

0

See th上面的评论,我发现我的错误。我认为解决我自己的问题的唯一方法就是回答它。

+0

确定不工作。 – MacPython 2010-08-03 15:15:13