【问题标题】:Django and get_absolute_urlDjango 和 get_absolute_url
【发布时间】:2011-01-22 11:12:24
【问题描述】:

我有一个简单的“帖子”模型,它代表我的博客条目:

class Post(models.Model):
    title = models.CharField('title', max_length=200)
    slug = models.SlugField('slug', unique_for_date='creation_time')
    creation_time = models.DateTimeField('creation time', auto_now_add=True)
    content = models.TextField('content')

    @permalink
    def get_absolute_url(self):
        return ('devblog_post_url', (), {
            'year': self.creation_time.year,
            'month': self.creation_time.month,
            'day': self.creation_time.day,
            'slug': self.slug})            

在我博客的索引处,我想用这个视图对这些帖子进行分页:

def index_view(request):
    published_posts = Post.objects.all()    
    paginator = Paginator(published_posts, 10)
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1
    try:
        post_list = paginator.page(page)
    except (EmptyPage, InvalidPage):
        post_list = paginator.page(paginator.num_pages)

    return render_to_response('devblog_index.html', {"post_list": post_list})

现在问题来了,一旦我为带有devblog_index.html 模板的帖子调用 get_absolute_url 方法,就会得到空白网址:

{% for post in post_list.object_list %}
    <a href="/{{ post.get_absolute_url }}/">{{ post.title }}</a><br />
{% endfor %}

编辑:

这是我的应用程序的 urls.py:

从 django.conf.urls.defaults 导入 *

urlpatterns = patterns('',
    url(r'^$',
        view='devblog.views.index_view',
        name='devblog_index'
    ),
    url(r'^(?P<year>\d{4})/(?P<month>\w{1,2)/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$',
        view='devblog.views.post_view', name='devblog_post_url'
    )
)

在主要的 urls.py 中,我简单地将其包含为 (r'^blog/', include('devblog.urls'))

这个空白字符串 url 的问题在哪里?

问候

【问题讨论】:

    标签: django django-models django-templates


    【解决方案1】:

    (?P&lt;month&gt;\w{1,2) 更改为(?P&lt;month&gt;\d{1,2})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      • 2015-07-01
      相关资源
      最近更新 更多