2012-08-11 80 views
0

我正在开发一个博客项目。现在,当我加载127.0.0.1;我看到我的主页列出了所有创建的帖子。当我点击其中一个帖子时,它将重定向一个页面。该网页的网址如:127.0.0.1/first-post。django添加基址部分

我所试图做的是一样,

127.0.0.1/post/first-post

我怎样才能做到这一点?

这里是我的urls.py文件:

from django.conf.urls import patterns, include, url 
from userside.models import Post 

urlpatterns = patterns('userside.views', 
    url(r'^$','index'), 
    url(r'^(?P<postslug>[-\w]+)',view ='singlePost', name='view_blog_post'), 
) 

这里是我的models.py:

from django.db import models 
from django.db.models import permalink 
from autoslug import AutoSlugField 

class Post(models.Model): 
    title = models.CharField(max_length = 100) 
    text = models.TextField() 
    slug = AutoSlugField(populate_from='title',unique=True) 
    posted = models.DateField(auto_now_add=True) 

    def __unicode__(self): 
     return self.title 

    @permalink 
    def get_absolute_url(self): 
     return ('view_blog_post',None, {'postslug':self.slug}) 

这里是我的主要urls.py:

from django.conf.urls import patterns, include, url 

urlpatterns = patterns('', 
    url(r'^', include('userside.urls')), 
) 

这里是我的views.py:

from userside.models import Post 
from django.shortcuts import render_to_response,get_object_or_404 
from django.template import RequestContext 


def index(request): 
    post_list = Post.objects.all().order_by("-posted") 
    return render_to_response('userside/index.html', 
           {'post_list':post_list}, 
           context_instance = RequestContext(request)) 

def singlePost(request,postslug): 
    post = get_object_or_404(Post, slug=postslug) 
    context = {'post':post} 
    return render_to_response('userside/detail.html',context,context_instance = RequestContext(request)) 

回答

2
url(r'^post/(?P<postslug>[-\w]+)',view ='singlePost', name='view_blog_post'), 
+0

它的工作原理!我忘了编辑模板文件中的链接。我编辑了index.html中的链接。它的效果很好。谢谢 – alix 2012-08-11 20:17:00